|
@@ -0,0 +1,25 @@
|
|
|
+package yu_crypto
|
|
|
+
|
|
|
+import (
|
|
|
+ "crypto/aes"
|
|
|
+ "crypto/cipher"
|
|
|
+)
|
|
|
+
|
|
|
+func AESCBCPKCS7En(src []byte, key []byte, iv []byte) []byte {
|
|
|
+ block, _ := aes.NewCipher(key)
|
|
|
+ ecb := cipher.NewCBCEncrypter(block, iv)
|
|
|
+ content := make([]byte, 0, len(src)+block.BlockSize())
|
|
|
+ content = append(content, src...)
|
|
|
+ content = PKCS7Padding(content, block.BlockSize())
|
|
|
+ crypted := make([]byte, len(content))
|
|
|
+ ecb.CryptBlocks(crypted, content)
|
|
|
+ return crypted
|
|
|
+}
|
|
|
+
|
|
|
+func AESCBCPKCS7De(src []byte, key []byte, iv []byte) []byte {
|
|
|
+ block, _ := aes.NewCipher(key)
|
|
|
+ ecb := cipher.NewCBCDecrypter(block, iv)
|
|
|
+ decrypted := make([]byte, len(src))
|
|
|
+ ecb.CryptBlocks(decrypted, src)
|
|
|
+ return PKCS7Trimming(decrypted)
|
|
|
+}
|