最近项目中golang项目中使用aes加解密,做个记录方便以后使用
aes-cbc-pkcs7加密解密base64输入输出
type AesBase64 struct {
key []byte // 允许16,24,32字节长度
iv []byte // 只允许16字节长度
}
func NewAesBase64(key []byte, iv []byte) *AesBase64 {
return &AesBase64{
iv: iv,
key: key,
}
}
func (s *AesBase64) Encrypt(text []byte) (string, error) {
if len(text) == 0 {
return "", nil
}
//生成cipher.Block 数据块
block, err := aes.NewCipher(s.key)
if err != nil {
return "", err
}
//填充内容,如果不足16位字符
blockSize := block.BlockSize()
originData := s.pad(text, blockSize)
//加密方式
blockMode := cipher.NewCBCEncrypter(block, s.iv)
//加密,输出到[]byte数组
crypted := make([]byte, len(originData))
blockMode.CryptBlocks(crypted, originData)
return base64.StdEncoding.EncodeToString(crypted)

文章介绍了在Golang项目中使用AES-CBC-PKCS7算法进行加密和解密,提供了Base64和Hex编码版本的示例代码,包括加密、解密函数以及填充和去除填充的方法。
最低0.47元/天 解锁文章
1780

被折叠的 条评论
为什么被折叠?



