Go语言实现AES加密算法(CBC模式)
AES是目前比较流行的对称加密算法,是一种分组密码算法,AES的分组长度为128比特(16字节),而密钥长度可以是128比特、192比特或256比特。
CBC模式(密码分组链接模式)是常用的一种分组密码的模式。(点击查看分组密码及CBC模式概述)
实现代码如下:
import (
"crypto/aes"
"crypto/cipher"
"fmt"
"bytes"
)
//对明文进行填充
func Padding(plainText []byte,blockSize int) []byte{
//计算要填充的长度
n:= blockSize-len(plainText)%blockSize
//对原来的明文填充n个n
temp:=bytes.Repeat([]byte{
byte(n)},n)
plainText=append(plainText,temp...)
return plainText
}
//对密文删除填充
func UnPadding(