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) }
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 }
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 }