前端RSA加密及压缩base64

来源:互联网 发布:java常量命名规范 编辑:程序博客网 时间:2024/06/14 10:46

加密:jsencrypt:https://github.com/travist/jsencrypt

压缩及base64:pako:https://github.com/nodeca/pako


参考:

jsencrypt http://www.cnblogs.com/zhaoyihao/p/5345784.html

pako http://blog.csdn.net/lan_liang/article/details/53924693



<!doctype html><html>  <head>    <title>JavaScript RSA Encryption</title>    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script><script src="bin/jsencrypt.min.js"></script>    <script src="bin/pako.min.js"></script>    <script type="text/javascript">    </script>  </head>  <body><a href="javascript:rsa();">加密</a><br/><br/><a href="javascript:unRsa();">解密</a>    <script>var b64Data     = 'H4sIAAAAAAAAAJ3UMQ7CMAwF0KugP2ewEzdpcxXUAbWAOiHUMqCqdyeVQAobfGXIYL8hP5ZXnEdkeNEk6vUgXTbLonC4zMjHFY/5Wm511ekdTsOCLKVp2rlIKOA2jTuBot/cr7BhobEwsbAloY8kDGyqoQ5H/oHsdwQ21cCmaspCz0L2jcYOgLHhNGw4TT1yVmBpuS9PZHWY35siqnxvimEvpE9FY4peQhfbhO0FDnuFqWAEAAA=';  var ticketData = '{"ed":"20170121 09:44:01","fs":[{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"003","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"005","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"004","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"007","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"008","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"026","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"033","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"034","oids":["0"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"035","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"037","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"038","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"041","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"042","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"047","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"046","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"048","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"051","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"053","oids":["4"]}],"qty":1,"sd":"20161021 09:44:01","cd":"72016102116762039687"}';  // Output to console   //加密var prk='MIICXQIBAAKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQABAoGAfY9LpnuWK5Bs50UVep5c93SJdUi82u7yMx4iHFMc/Z2hfenfYEzu+57fI4fvxTQ//5DbzRR/XKb8ulNv6+CHyPF31xk7YOBfkGI8qjLoq06V+FyBfDSwL8KbLyeHm7KUZnLNQbk8yGLzB3iYKkRHlmUanQGaNMIJziWOkN+N9dECQQD0ONYRNZeuM8zd8XJTSdcIX4a3gy3GGCJxOzv16XHxD03GW6UNLmfPwenKu+cdrQeaqEixrCejXdAFz/7+BSMpAkEA8EaSOeP5Xr3ZrbiKzi6TGMwHMvC7HdJxaBJbVRfApFrE0/mPwmP5rN7QwjrMY+0+AbXcm8mRQyQ1+IGEembsdwJBAN6az8Rv7QnD/YBvi52POIlRSSIMV7SwWvSK4WSMnGb1ZBbhgdg57DXaspcwHsFV7hByQ5BvMtIduHcT14ECfcECQATeaTgjFnqE/lQ22Rk0eGaYO80cc643BXVGafNfd9fcvwBMnk0iGX0XRsOozVt5AzilpsLBYuApa66NcVHJpCECQQDTjI2AQhFc1yRnCU/YgDnSpJVm1nASoRUnU8Jfm3Ozuku7JUXcVpt08DFSceCEX9unCuMcT72rAQlLpdZir876'var pbk='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylJ6pyOuAEWMwv7NOpECzc/3uBZO4QaZ5BMbJQMEVKXFkgWvzOd2aBz65z70/679joELF/YamKHxPazpPrWz1za5hEpjm/6YOxlKHhAyMkcHaqeTZT8fP9gI6nBEyUB6glkXhNlcHxBttXpZn3B628VeGovpsWzV6DbLYIgTAvN1kU1INnNzYhAYzXORkwS1wGYFOSc26v5hiMO3KjnHudpqD7JYgDGU85nSD82z9FHFDJctDpUro65LjwGEO2EAl1zcWPdUImFbJ2ojyh1kpSgG6qjKIxLa8kxOx+9DtvMBkL07zebP9m8a7CKDkTd2qOoio4emX1xTFj/f91DuiQIDAQAB'var ect = new JSEncrypt();        ect.setPublicKey(pbk);var ectStr='',zipStr='';//加密function rsa(){var pData={name:'kaisa11fasdfasdf',pwd:'a123456fasdfasdf'}ectStr=ect.encrypt(JSON.stringify(pData));//加密zipStr = zip(ectStr);//压缩base64console.log("zipped:");console.log(rsaStr);}//解密function unRsa(){//解压base64var s = unzip(rsaStr);console.log("unzipped:");  console.log(s); //解密var decrypt = new JSEncrypt();            decrypt.setPrivateKey(prk);            var uncrypted = decrypt.decrypt(ectStr);}    function unzip(b64Data){  var strData     = atob(b64Data);    // Convert binary string to character-number array  var charData    = strData.split('').map(function(x){return x.charCodeAt(0);});      // Turn number array into byte-array  var binData     = new Uint8Array(charData);      // // unzip  var data        = pako.inflate(binData);      // Convert gunzipped byteArray back to ascii string:  strData     = String.fromCharCode.apply(null, new Uint16Array(data));  return strData;  }      function zip(str){  var binaryString = pako.gzip(str, { to: 'string' });    return btoa(binaryString);  }</script>  </body></html>


demo

原创粉丝点击