<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>EDS加密和解密传输</title>
<style type="text/css">
.pass{
outline: none;
border: 0;
}
</style>
</head>
<body>
<div>
<label>账号 : </label> <input type="text" name="userName" placeholder="请输入账号">
<label>密码 : </label><input type="password" name="passWord" placeholder="请输入密码" />
<button class="submit">提交</button>
</div>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.js"></script>
<script type="text/javascript">
$('.submit').click(function() {
var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
'L', 'M', 'N', 'O', 'P',
'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
];
var str = '',str1 = '';
while (str.length < 16) {
var iNum = parseInt(Math.random() * 100)
while (iNum > 60) {
iNum = parseInt(Math.random() * 100)
}
str += arr[iNum];
}
while (str1.length < 16) {
var iNum = parseInt(Math.random() * 100)
while (iNum > 60) {
iNum = parseInt(Math.random() * 100)
}
str1 += arr[iNum];
}
const key = CryptoJS.enc.Utf8.parse(str); //十六位十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse(str1); //十六位十六进制数作为密钥偏移量
var PassWord = $('input[name="passWord"]').val();
var userName = $('input[name="userName"]').val();
alert(userName)
//加密方法
function Encrypt(word) {
let srcs = CryptoJS.enc.Utf8.parse(word);
let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
return encrypted.ciphertext.toString().toUpperCase();
}
//解密方法
function Decrypt(word) {
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);
return decryptedStr.toString();
}
//使用说明
var newPass = Encrypt(PassWord);//加密后的密码
var pass = Decrypt(newPass); //加密前密码
console.log('加密后密码:'+newPass);
console.log('原始密码:'+pass)
var newUser = Encrypt(userName);//加密后的密码
var user = Decrypt(newUser); //加密前密码
console.log('加密后用户名:'+newUser);
console.log('原始用户名:'+user)
})
</script>
</body>
</html>
前端登录EDS加密和解密传输数据案例
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。