最近因爲項目須要作一個url傳參,並在頁面顯示參數內容的需求,這樣就會遇到一個url地址可能會被假冒,javascript
並傳遞非法內容顯示在頁面的尷尬狀況html
好比xxx.shtml?server=xxx是壞人&name=xxxoojava
這個url被人篡改胡亂發出去,追究責任仍是要追究到網站負責人的。jquery
因而想起來用加密url參數的方法,最早想到的是用base64加密參數,可是這樣有點錢的知識的人,在js裏面看app
到如何解密,就知道怎麼加密了,url仍是能胡亂僞造後來仔細思量加密,非對稱加密,一閃而過,在網上找了測試
一下相關資料,發現有javascript版本的RSA非對稱加密,大概看下如何使用,最終發現可用。網站
廢話完畢,直接上代碼:ui
<!DOCTYPE html> <html> <head> <title>javascript非對稱加密(RSA)JSEncrypt Example</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="js/jquery-3.2.1.min.js"></script> <script type="text/javascript" src="js/jsencrypt.js"></script> </head> <body> <div class="container"> <label for="privkey">Private Key</label><br/> <textarea id="privkey" rows="15" cols="65">-----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQ WMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNR aY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB AoGAfY9LpnuWK5Bs50UVep5c93SJdUi82u7yMx4iHFMc/Z2hfenfYEzu+57fI4fv xTQ//5DbzRR/XKb8ulNv6+CHyPF31xk7YOBfkGI8qjLoq06V+FyBfDSwL8KbLyeH m7KUZnLNQbk8yGLzB3iYKkRHlmUanQGaNMIJziWOkN+N9dECQQD0ONYRNZeuM8zd 8XJTSdcIX4a3gy3GGCJxOzv16XHxD03GW6UNLmfPwenKu+cdrQeaqEixrCejXdAF z/7+BSMpAkEA8EaSOeP5Xr3ZrbiKzi6TGMwHMvC7HdJxaBJbVRfApFrE0/mPwmP5 rN7QwjrMY+0+AbXcm8mRQyQ1+IGEembsdwJBAN6az8Rv7QnD/YBvi52POIlRSSIM V7SwWvSK4WSMnGb1ZBbhgdg57DXaspcwHsFV7hByQ5BvMtIduHcT14ECfcECQATe aTgjFnqE/lQ22Rk0eGaYO80cc643BXVGafNfd9fcvwBMnk0iGX0XRsOozVt5Azil psLBYuApa66NcVHJpCECQQDTjI2AQhFc1yRnCU/YgDnSpJVm1nASoRUnU8Jfm3Oz uku7JUXcVpt08DFSceCEX9unCuMcT72rAQlLpdZir876 -----END RSA PRIVATE KEY-----</textarea><br/> <label for="pubkey">Public Key</label><br/> <textarea id="pubkey" rows="15" cols="65">-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtN FOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76 xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4 gwQco1KRMDSmXSMkDwIDAQAB -----END PUBLIC KEY-----</textarea><br/> <div class="tool"> 輸入須要加密文字:<br/> <textarea name="" id="needCrypt" cols="30" rows="10">測試XXXX</textarea> <a href="javascript:void(0);" id="crypt-btn">加密</a><br/> 加密結果:<br/> <textarea name="" id="resultCrypt" cols="30" rows="10"> </textarea> <a href="javascript:void(0);" id="decrypt-btn">解密</a><br/> 解密結果:<br/> <textarea name="" id="result" cols="30" rows="10"> </textarea> </div> <script type="text/javascript"> // Call this code when the page is done loading. $(function() { $("#crypt-btn").click(function(){ // Encrypt with the public key... var encrypt = new JSEncrypt(); encrypt.setPublicKey($('#pubkey').val()); var encrypted = encrypt.encrypt($("#needCrypt").val()); document.getElementById("resultCrypt").innerText = encrypted; }); $("#decrypt-btn").click(function(){ // Decrypt with the private key... var decrypt = new JSEncrypt(); decrypt.setPrivateKey($('#privkey').val()); var uncrypted = decrypt.decrypt($("#resultCrypt").val()); document.getElementById("result").innerText = uncrypted; }); }); </script> </div> </body> </html>
下載this
示例:RSA非對稱加密示例加密