天天看點

jsencrypt表單加密

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>jsencrypt的使用</title>
        <script src="js/jquery-2.0.3.min.js"></script>
        <script src="js/jsencrypt.min.js"></script>
    </head>
    <body>
        <div style="width: 50%;float: left;">
        <label for="message">下面簡單介紹jsencrypt的基本使用</label><br />
        <textarea id="message" name="message" rows="20" cols="60">
            建立秘鑰對JKS格式keystore:
            keytool -genkey -v -alias test -keyalg RSA -keystore test.jks

            将JKS格式keystore轉換成PKCS12證書檔案:
            keytool -importkeystore -srckeystore test.jks -destkeystore test.p12 -srcstoretype JKS -deststoretype PKCS12<br />

            使用OpenSSL工具從PKCS12證書檔案導出密鑰對:
            openssl pkcs12 -in test.p12 -nocerts -nodes -out test.key

            從密鑰對中提取公鑰:
            openssl rsa -in test.key -pubout -out test_public.pem
        </textarea><br />
        </div>
        <div>
        <label for="publicKey">Public Key</label><br />
        <textarea id="publicKey" name="publicKey" rows="20" cols="60">
            -----BEGIN RSA PUBLIC KEY-----
            MIICXQIBAAKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQ
            WMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNR
            aY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB
            AoGAfY9LpnuWK5Bs50UVep5c93SJdUi82u7yMx4iHFMc/Z2hfenfYEzu+57fI4fv
            xTQ//5DbzRR/XKb8ulNv6+CHyPF31xk7YOBfkGI8qjLoq06V+FyBfDSwL8KbLyeH
            m7KUZnLNQbk8yGLzB3iYKkRHlmUanQGaNMIJziWOkN+N9dECQQD0ONYRNZeuM8zd
            -----END RSA PUBLIC KEY-----
        </textarea>
        <br />
        <label for="input">jsencrypt:</label><br />
        name:<input type="text" name="username" id="username" value="username" /><br />
        password:<input type="password" name="password" id="password" value="password" /><br />
        <input type="button" id="submit" value="submit" />
        </div>
        <script type="text/javascript">
            $(function(){
                $('submit').click(function(){
                    var data = [];
                    data['username'] = $('#username').val();
                    data['password'] = $('#password').val();

                    var publicKey = $('#publicKey').val();
                    encryptSend('./Jsencrypt.do',data,publicKey);
                    //Jsencrypt.do對應服務端處理位址
                });
            });

            //使用jsencrypt庫加密前段參數
            function enctyptSend(url,data,publicKey){
                var jsencrypt = new JSEncrypt();
                jsencrypt.setPublicKey(publicKey);

                //enData用來裝載加密後的資料
                var enData = new Object();

                //将參數用jsencrypt加密後付給enData
                for (var key in data) {
                    enData[key] = jsencrypt.encrypt(data[key]);
                }

                $.ajax({
                    type : "post",
                    url : "url",
                    data : enData,
                    dataType : 'json',
                    success : function(data){
                        console.info(data);
                    },
                    error : function(xhr){
                        console.error('Something went wrong...');
                    }
                });
            }
        </script>
    </body>
</html>