Skip to content

wyy-go/wcrypto

Repository files navigation

wcrypto

GitHub Repo stars GitHub GitHub go.mod Go version GitHub all releases GitHub CI Status GitHub Release Status Go Report Card Go.Dev reference codecov

Example

package main

import (
	"fmt"
	"github.com/wyy-go/wcrypto"
)

func main() {
	key := "1234567899874563"
	iv := "qwertyuiopasdfgj"
	testText := "hello world"

	crypto, err := wcrypto.NewChipher(wcrypto.Aes128Cbc, key, iv)
	if err != nil {
		fmt.Println(err)
		return
	}
	cipherText, err := crypto.Encrypt(testText)
	if err != nil {
		fmt.Println(err)
		return
	}

	plainText, err := crypto.Decrypt(cipherText)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(plainText)

}

Reference

需要Padding的有:CBC(,PCBC也需要,本文未涉及该加密模式)、ECB。 不需要Padding的有:CFB、OFB、CTR。

以上五种分组模式中,ECB模式很容易被破解,如今已经很少再使用,其余四种分组模式各有千秋。 但极力推荐CBC模式和CTR模式,尤其是CTR模式,不需要填充,代码实现起来很方便。 而且加密和解密的方法是一样的,并且可以实现并发分组,效率高,安全性也有保障

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages