parent
ad666443c9
commit
8abad8dae7
@ -1,65 +0,0 @@
|
|||||||
package CommonUtil
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"crypto/aes"
|
|
||||||
"crypto/cipher"
|
|
||||||
"encoding/base64"
|
|
||||||
)
|
|
||||||
|
|
||||||
func AesEncrypt(orig string, key string) string {
|
|
||||||
// 转成字节数组
|
|
||||||
origData := []byte(orig)
|
|
||||||
k := []byte(key)
|
|
||||||
|
|
||||||
// 分组秘钥
|
|
||||||
block, _ := aes.NewCipher(k)
|
|
||||||
// 获取秘钥块的长度
|
|
||||||
blockSize := block.BlockSize()
|
|
||||||
// 补全码
|
|
||||||
origData = PKCS7Padding(origData, blockSize)
|
|
||||||
// 加密模式
|
|
||||||
blockMode := cipher.NewCBCEncrypter(block, k[:blockSize])
|
|
||||||
// 创建数组
|
|
||||||
cryted := make([]byte, len(origData))
|
|
||||||
// 加密
|
|
||||||
blockMode.CryptBlocks(cryted, origData)
|
|
||||||
|
|
||||||
return base64.StdEncoding.EncodeToString(cryted)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func AesDecrypt(cryted string, key string) string {
|
|
||||||
// 转成字节数组
|
|
||||||
crytedByte, _ := base64.StdEncoding.DecodeString(cryted)
|
|
||||||
k := []byte(key)
|
|
||||||
|
|
||||||
// 分组秘钥
|
|
||||||
block, _ := aes.NewCipher(k)
|
|
||||||
// 获取秘钥块的长度
|
|
||||||
blockSize := block.BlockSize()
|
|
||||||
// 加密模式
|
|
||||||
blockMode := cipher.NewCBCDecrypter(block, k[:blockSize])
|
|
||||||
// 创建数组
|
|
||||||
orig := make([]byte, len(crytedByte))
|
|
||||||
// 解密
|
|
||||||
blockMode.CryptBlocks(orig, crytedByte)
|
|
||||||
// 去补全码
|
|
||||||
orig = PKCS7UnPadding(orig)
|
|
||||||
return string(orig)
|
|
||||||
}
|
|
||||||
|
|
||||||
//补码
|
|
||||||
func PKCS7Padding(ciphertext []byte, blocksize int) []byte {
|
|
||||||
padding := blocksize - len(ciphertext)%blocksize
|
|
||||||
padtext := bytes.Repeat([]byte{byte(padding)}, padding)
|
|
||||||
return append(ciphertext, padtext...)
|
|
||||||
}
|
|
||||||
|
|
||||||
//去码
|
|
||||||
func PKCS7UnPadding(origData []byte) []byte {
|
|
||||||
length := len(origData)
|
|
||||||
unpadding := int(origData[length-1])
|
|
||||||
return origData[:(length - unpadding)]
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in new issue