兩種JavaScript的AES加密方式(可與Java相互加解密)
由于JavaScript屬于弱類型腳本語言,因此當(dāng)其與強類型的后臺語言進(jìn)行數(shù)據(jù)交互時會產(chǎn)生各種問題,特別是加解密的操作。本人由于工作中遇到用js與Java進(jìn)行相互加解密的問題,在網(wǎng)上查了很多資料及代碼段,均無法解決。后總結(jié)多篇文檔內(nèi)容終于找到解決辦法,現(xiàn)記錄與此:
下面給大家介紹兩種JavaScript的AES加密方式,具體詳情如下所示:
第一種:加解密時需要秘鑰(key)和秘鑰偏移量(iv)的情況,在線驗證地址:http://www.seacha.com/tools/aes.html
//該方法可與Java進(jìn)行相互加解密<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>需要秘鑰(key)及秘鑰偏移量(iv)的aes加解密</title>
</head>
<body>
<script src="aes_1.js"></script> //引入的js文件在該鏈接中:https://github.com/hellobajie/AES-of-JavaScript
<script>
var key = CryptoJS.enc.Utf8.parse("十六位十六進(jìn)制數(shù)作為秘鑰");
var iv = CryptoJS.enc.Utf8.parse('十六位十六進(jìn)制數(shù)作為秘鑰偏移量');
function Encrypt(word){
srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});
return encrypted.ciphertext.toString().toUpperCase();
}
function Decrypt(word){
var encryptedHexStr = CryptoJS.enc.Hex.parse(word);
var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
var decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});
var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}
var mm = Encrypt('nihao')
console.log(mm);
var jm = Decrypt(mm);
console.log(jm)
</script>
</body>
</html>//如果想要深度了解每步作用,可以參考:http://zhidao.baidu.com/question/647688575019014285.html?qbl=relate_question_0&word=javascript%20aes
第二種:加解密時僅需要秘鑰,在線驗證地址:http://encode.chahuo.com/
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>加解密時僅需要秘鑰</title>
</head>
<body>
<script src="aes_2.js"></script> //引入的js文件在該鏈接中:https://github.com/hellobajie/AES-of-JavaScript
<script type="text/javascript">
var pwd="秘鑰";
function Encrypt(word){
return CryptoJS.AES.encrypt(word,pwd).toString();
}
function Decrypt(word){
return CryptoJS.AES.decrypt(word,pwd).toString(CryptoJS.enc.Utf8);
}
var mm = Encrypt('nihao');
console.log(mm)
var jm = Decrypt(mm);
console.log(jm)
</script>
</body>
</html>
以上所述是小編給大家介紹的兩種JavaScript的AES加密方式(可與Java相互加解密),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
實例代碼詳解javascript實現(xiàn)窗口抖動及qq窗口抖動
這篇文章主要介紹了實例代碼詳解javascript實現(xiàn)窗口抖動及qq窗口抖動的相關(guān)資料,需要的朋友可以參考下2016-01-01
JavaScript常用進(jìn)制轉(zhuǎn)換及位運算實例解析
這篇文章主要介紹了JavaScript常用進(jìn)制轉(zhuǎn)換及位運算實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10

