java 加密服务器_Javascript端加密java服务端解密
通常我們會通過htts來保證傳輸安全,但如果我們不用https,如何通過javascript來保證瀏覽器端發送的參數進行加密,并且通過RSA算法來處理。
這里我們可以利用jquery的一個加密插件jcryption來處理,可以參考
現在版本是3.0?但是沒有java端的實現,下次有時間再研究。現在這個用的是1.1的版本
這個可以在
不過他的服務端有個缺陷我修改了。
接來大致介紹如下:
1.?????首先服務端有產生publicKey的servlet:
package com.gsh.oauth.auth.servlet;
import java.io.IOException;
import java.security.KeyPair;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gsh.oauth.auth.util.JCryptionUtil;
/**
* Servlet implementation class EncryptionServlet
*/
public class EncryptionServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public EncryptionServlet() {
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
int KEY_SIZE = 1024;
if (request.getParameter("generateKeypair") != null) {
JCryptionUtil jCryptionUtil = new JCryptionUtil();
KeyPair keys = null;
//if (request.getSession().getAttribute("keys") == null) { //這里注釋掉?否則第二次請求會500
keys = jCryptionUtil.generateKeypair(KEY_SIZE);
request.getSession().setAttribute("keys", keys);
//}
StringBuffer output = new StringBuffer();
String e = JCryptionUtil.getPublicKeyExponent(keys);
String n = JCryptionUtil.getPublicKeyModulus(keys);
String md = String.valueOf(JCryptionUtil.getMaxDigits(KEY_SIZE));
output.append("{\"e\":\"");
output.append("\",\"n\":\"");
output.append(n);
output.append("\",\"maxdigits\":\"");
output.append(md);
output.append("\"}");
output.toString();
response.getOutputStream().print(
output.toString().replaceAll("\r", "").replaceAll("\n", "")
.trim());
} else {
response.getOutputStream().print(String.valueOf(false));
}
}
}
2.?Client例子
Login formcontent="text/html; charset=utf-8">
$(document).ready(function() {
var?$statusText = $('').hide();
$("#status_container").append($statusText);
$("#lf").jCryption({
getKeysURL:"/gsh/oauth/encryption?generateKeypair=true",
beforeEncryption :?function() {
$statusText
.text("Test Code")
.show();
return?true;
},
encryptionFinished :?function(
encryptedString,
objectLength) {
$statusText
.text(encryptedString);
return?true;
}
});
});
method="post">
loginclient_id:redirect_uri:loginid:總結
以上是生活随笔為你收集整理的java 加密服务器_Javascript端加密java服务端解密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 比亚迪称汉唐将会颠覆合资燃油 掌握中高端
- 下一篇: java美元兑换,(Java实现) 美元