示例#1
0
文件: DemoAES.go 项目: dongwq/go-demo
func AesDecodeStr(key, src string) string {
	srcBytes, err := base64.StdEncoding.DecodeString(src)
	util.CheckErr("msg err", err)

	result := AesDecode([]byte(key), srcBytes)
	return string(result)
}
示例#2
0
文件: DemoAES.go 项目: dongwq/go-demo
func AesDecode(key, src []byte) []byte {

	// 初始向量,长度必须为16个字节(128bit)
	var iv = []byte("abcdef1234567890")[:aes.BlockSize]
	// 得到块,用于加密和解密
	block, err := aes.NewCipher(key)
	util.CheckErr("msg err", err)

	// 解密
	decrypter := cipher.NewCFBDecrypter(block, iv)

	decrypted := make([]byte, len(src))
	decrypter.XORKeyStream(decrypted, src)

	return decrypted
}
示例#3
0
文件: DemoAES.go 项目: dongwq/go-demo
func AesEncode(key, src []byte) []byte {

	// 初始向量,长度必须为16个字节(128bit)
	var iv = []byte("abcdef1234567890")[:aes.BlockSize]
	// 得到块,用于加密和解密
	block, err := aes.NewCipher(key)

	util.CheckErr("msg err", err)

	// 加密,使用CFB模式(密文反馈模式),其他模式参见crypto/cipher
	encrypter := cipher.NewCFBEncrypter(block, iv)

	encrypted := make([]byte, len(src))
	encrypter.XORKeyStream(encrypted, src)

	return encrypted

}