什么是AES加密算法?
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
举个栗子
发送者 -> “今晚打老虎” -> 接受者
如果明文传输,消息截获者也可以窥探到消息的内容,从而暴露了通信双方的私密。
因此我们改用加密的方式传输密文:
“今晚打老虎” -> AES加密 -> IhxKCpIsg018W2iX7xzrXw== -> AES解密 -> “今晚打老虎”
由于加密和解密的秘钥是相同的,所以AES为对称加密
代码
package main
import (
"bytes"
"crypto/aes"
"crypto/cipher"
"encoding/base64"
"fmt"
)
func PKCS7Padding(ciphertext []byte, blockSize int) []byte {
padding := blockSize - len(ciphertext)%blockSize
padtext := bytes.Repeat([]byte{
byte(padding)}, padding)
return append(ciphertext, padtext...)