當前位置:
首頁 >
DES加解密
發(fā)布時間:2025/7/14
23
豆豆
最近遇到了前端需要des加密一個http的頭部數據,所以在網上找了一些javascript直接寫出來的des加解密框架,比對三個框架,三個不同的答案,并且三個答案都和服務器可以正確解密的秘鑰不同。。。。
于是乎在同事的幫助下找到一個nodeJS可以正確解析的框架,但是nodeJS不可以跑在瀏覽器上,所以需要通過Browserify打包。打包出來的des3.js已經上傳到了
https://github.com/YuyangWitness/yixingxiao/blob/master/js/des3.js
?
用法很簡單
//加密 DES3.encrypt({alg: 'des-ede3-cbc', //3des-cbc autoPad: true,key: 'xxxxx', //秘鑰plaintext: 'xxxxx', //需要加密的數據iv: '74756231' });//解密 DES3.decrypt({alg: 'des-ede3-cbc', //3des-cbc autoPad: true,key: 'xxx', //秘鑰encrypttext: 'xxxxx', //已經加密的數據iv: '74756231' });?
由于上面的包比較大,所以通過壓縮四個主要包減小大小,合成了tripledes.js代碼
https://github.com/YuyangWitness/yixingxiao/blob/master/js/tripledes.js
用法如下:
//加密 function encrypt(param) {var keyHex = CryptoJS.enc.Utf8.parse(param.key);var ivHex = CryptoJS.enc.Utf8.parse(param.iv);ar encrypted = CryptoJS.TripleDES.encrypt(param.plaintext, keyHex, {iv: ivHex });var ciph = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);console.info(ciph);return ciph; }//解密 function decrypt(param) {var keyHex = CryptoJS.enc.Utf8.parse(param.key);var ivHex = CryptoJS.enc.Utf8.parse(param.iv);var decrypted = CryptoJS.TripleDES.decrypt({ciphertext: CryptoJS.enc.Base64.parse(param.encrypttext)}, keyHex, {iv: ivHex});var txt = decrypted.toString(CryptoJS.enc.Utf8);console.info(txt);return txt; }encrypt({key: 'cntaipingcomcn@lx100$#36',plaintext: '1249603',iv: '74756231' });decrypt({key: 'cntaipingcomcn@lx100$#36',encrypttext: 'bFPvUJsj4Ms=',iv: '74756231' });encrypt({key: 'cntaipingcomcn@lx100$#36',plaintext: '00001214601',v: '74756231' });decrypt({key: 'cntaipingcomcn@lx100$#36',encrypttext: 'LyfI0BvWSSEYg0TpQVbbzg==',iv: '74756231' });?
轉載于:https://www.cnblogs.com/claireyu1219/p/6322731.html
總結
- 上一篇: jzoj C组 2017.1.19 比赛
- 下一篇: json面向对象