<!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>