vue加goframe使用AES加解密(记录)
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为解密后的字符串。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律