rsa decryption methods described herein, for the front end projects react, vue, angular frame
1. 安装cryto-js:npm install crypto-js
2. RSA encryption and decryption functions: (CBC mode, base64 format, zeroPadding, 16 bits)
. 1 Import CryptoJS from 'Crypto-JS / JS-Crypto' 2 . 3 // Default If no KEY and iv . 4 const KEY = CryptoJS.enc.Utf8.parse ( "1234567890123456" ); . 5 const = CryptoJS.enc IV. Utf8.parse ( '1234567890123456' ); . 6 / * * . 7 * the AES encryption: returns a string key iv Base64 . 8 * / . 9 Export function encrypt (Word, keyStr, ivStr) { 10 the let Key = KEY . 11 the let IV = IV 12 is 13 is IF (keyStr) { 14 Key = CryptoJS.enc.Utf8.parse (keyStr); 15 iv = CryptoJS.enc.Utf8.parse(ivStr); 16 } 17 18 let srcs = CryptoJS.enc.Utf8.parse(word); 19 var encrypted = CryptoJS.AES.encrypt(srcs, key, { 20 iv: iv, 21 mode: CryptoJS.mode.CBC, 22 padding: CryptoJS.pad.ZeroPadding 23 }); 24 // console.log("-=-=-=-", encrypted.ciphertext) 25 return CryptoJS.enc.Base64.stringify(encrypted.ciphertext); 26 27 } 28 /** 29 * AES 解密 :字符串 key iv 返回base64 30 * 31 */ 32 export function Decrypt(word, keyStr, ivStr) { 33 let key = KEY 34 let iv = IV 35 36 if (keyStr) { 37 key = CryptoJS.enc.Utf8.parse(keyStr); 38 iv = CryptoJS.enc.Utf8.parse(ivStr); 39 } 40 41 let base64 = CryptoJS.enc.Base64.parse(word); 42 let src = CryptoJS.enc.Base64.stringify(base64); 43 44 var decrypt = CryptoJS.AES.decrypt(src, key, { 45 iv: iv, 46 mode: CryptoJS.mode.CBC, 47 padding: CryptoJS.pad.ZeroPadding 48 }); 49 50 var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); 51 return decryptedStr.toString(); 52 }
3. Use in the assembly:
. 1 Import The Decrypt {,} from Encrypt 'package just JS' 2 . 3 var parm1 The Decrypt = ( 'encrypted field' , Key, IV) . 4 the console.log ( 'field following encryption:' , parm1) . 5 . 6 var parm2 = decrypt ( 'field of the decrypted' , Key, IV) . 7 the console.log ( 'after decryption fields:', parm2)
Note: The key preferably digital, or may be error (error code is reported that, in fact, the code no problem)