crypto-js前端加密与解密
crypto-js 是⼀个纯 javascript 写的加密算法类库,可以⾮常⽅便地在 javascript 进⾏ MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进⾏ AES、DES、Rabbit、RC4、Triple DES 加解密。
import CryptoJS from 'crypto-js/crypto-js'
/**
* iv 是密钥偏移量,这个⼀般是接⼝返回的,或者前后端协定⼀致。
*由于对称解密使⽤的算法是 AES-128-CBC算法,数据采⽤ PKCS#7 填充,因此这⾥的 key 需要为16位
*/
//16位16进制数作为密钥
const KEY = Utf8.parse('1234123412ABCDEF')
const IV = Utf8.parse('ABCDEF1234123412')js代码加密软件
/**
* AES加密:字符串 key iv 返回base64
*/
export function Encrypt(word, keyStr, ivStr) {
let key = KEY
let iv = IV
if (keyStr) {
key = Utf8.parse(keyStr)
iv = Utf8.parse(ivStr)
}
const srcs = Utf8.parse(word)
var encrypted = pt(srcs, key, {
iv: iv,
mode: de.CBC,
padding: CryptoJS.pad.ZeroPadding
})
// console.log("-=-=-=-", encrypted.ciphertext)
Base64.stringify(encrypted.ciphertext)
}
/**
* AES 解密:字符串 key iv 返回base64
*
*/
export function Decrypt(word, keyStr, ivStr) {
let key = KEY
let iv = IV
if (keyStr) {
key = Utf8.parse(keyStr)
iv = Utf8.parse(ivStr)
}
const base64 = Base64.parse(word)
const src = Base64.stringify(base64)
var decrypt = CryptoJS.AES.decrypt(src, key, {
iv: iv,
mode: de.CBC,
padding: CryptoJS.pad.ZeroPadding
})
var decryptedStr = Utf8)
String()
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论