微信公众号前端模版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.8 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1" >
<title></title>
<script src="../lib/ase/core.min.js"></script>
<script src="../lib/ase/enc-base64.min.js"></script>
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/md5.min.js"></script> -->
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/evpkdf.min.js"></script> -->
<script src="../lib/ase/cipher-core.min.js"></script>
<script src="../lib/ase/aes.min.js"></script>
<!-- <script src="../lib/ase/pad-pkcs7.min.js"></script> -->
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/mode-ecb.min.js"></script> -->
<!-- <script src="../lib/ase/enc-utf8.min.js"></script> -->
<!-- <script src="../lib/ase/enc-hex.min.js"></script> -->
<script>
/**
* @description 解密方法
* @param {String} word 解密数据
* @returns 数据
*/
function decrypt(word, key, vi) {
/** 十六位十六进制数作为密钥 《静夜思》 */
var key = CryptoJS.enc.Utf8.parse("cqmygysdssjtwmyd")
/** 十六位十六进制数作为密钥偏移量 《赋得古原草送别》 */
var iv = CryptoJS.enc.Utf8.parse('llyscysykryhsbjc')
let backStr
try {
let encryptedHexStr = CryptoJS.enc.Hex.parse(word)
let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr)
let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 })
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8)
backStr = decryptedStr.toString()
}
catch (error) {
console.error(error)
}
return backStr
}
/**
* @description 加密方法
* @param {String} word 需加密数据
* @returns 数据
*/
function encrypt(word) {
/** 十六位十六进制数作为密钥 《静夜思》 */
var key = CryptoJS.enc.Utf8.parse("cqmygysdssjtwmyd")
/** 十六位十六进制数作为密钥偏移量 《赋得古原草送别》 */
var iv = CryptoJS.enc.Utf8.parse('llyscysykryhsbjc')
let backStr
try {
let srcs = CryptoJS.enc.Utf8.parse(word)
let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 })
backStr = encrypted.ciphertext.toString().toUpperCase()
} catch (e) {
console.error(e)
}
return backStr
}
console.log(decrypt('59321F1175CAC4B394F5B15E1F26AD8B'))
</script>
</head>
<body>
</body>
</html>