vue加goframe使用AES加解密
首先,需要在前端使用Vue的crypto-js库来进行AES加解密,可以使用以下命令进行安装:
npm install crypto-js
然后在需要加解密的组件中引入该库:
import CryptoJS from 'crypto-js'
对于加密,可以使用以下代码:
const key = CryptoJS.enc.Utf8.parse('1234567890123456') // 加密密钥,必须为16位
const iv = CryptoJS.enc.Utf8.parse('1234567890123456') // 偏移量,必须为16位
const encrypted = CryptoJS.AES.encrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
const encryptedStr = encrypted.toString()
其中,data为需要加密的字符串,encryptedStr为加密后的字符串。
对于解密,可以使用以下代码:
const key = CryptoJS.enc.Utf8.parse('1234567890123456') // 加密密钥,必须为16位
const iv = CryptoJS.enc.Utf8.parse('1234567890123456') // 偏移量,必须为16位
const decrypted = CryptoJS.AES.decrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
const decryptedStr = decrypted.toString(CryptoJS.enc.Utf8)
其中,data为需要解密的字符串,decryptedStr为解密后的字符串。
在后端使用goframe框架进行AES加解密,可以使用go语言内置的crypto/aes包。以下是一个简单的示例:
package main
import (
"crypto/aes"
"crypto/cipher"
"encoding/base64"
"fmt"
)
func main() {
key := []byte("1234567890123456") // 加密密钥,必须为16位
iv := []byte("1234567890123456") // 偏移量,必须为16位
// 加密
plaintext := []byte("hello world")
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
ciphertext := make([]byte, len(plaintext))
mode := cipher.NewCBCEncrypter(block, iv)
mode.CryptBlocks(ciphertext, plaintext)
encryptedStr := base64.StdEncoding.EncodeToString(ciphertext)
fmt.Println(encryptedStr)
// 解密
ciphertext, err = base64.StdEncoding.DecodeString(encryptedStr)
if err != nil {
panic(err)
}
plaintext = make([]byte, len(ciphertext))
mode = cipher.NewCBCDecrypter(block, iv)
mode.CryptBlocks(plaintext, ciphertext)
decryptedStr := string(plaintext)
fmt.Println(decryptedStr)
}
其中,encryptedStr为加密后的字符串,decryptedStr为解密后的字符串。
标签:AES,vue,const,加解密,iv,mode,加密,CryptoJS From: https://www.cnblogs.com/ZJMars/p/17327251.html