golang版aes-cbc-pkcs7加密解密base64&hex字符串输入输出

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

最近项目中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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值