java 登陸和注冊傳輸的加密解密
項目中用spring+springMVC+mybatis搭建,在登陸和注冊的傳輸過程要加密,經過網上各種加密的方法,最后決定用這樣的方式,雖然說不是最好的,但是覺得一般項目也就夠了。
方法:md5+rsa非對稱加密
過程:當用戶發送登陸頁面的請求時,服務器動態產生rsa秘鑰對,然后把公鑰連同登陸界面返回給用戶,...輸入信息...然后用戶點擊登陸按鈕,這時候獲取密碼的文本,先使用md5對明文的文本加密,然后再用rsa加密,最后發送到服務器,服務器獲取到rsa加密后的字符串后,用私鑰來解密,最后得到md5加密的字符串直接保存到數據庫。
jsp頁面使用rsa的js
<script type="text/javascript" src="${path}/js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="${path}/js/rsa/RSA.js"></script>
<script type="text/javascript" src="${path}/js/rsa/BigInt.js"></script>
<script type="text/javascript" src="${path}/js/rsa/Barrett.js"></script>
<script type="text/javascript" src="${path}/js/jQuery.md5.js"></script>
js代碼:
setMaxDigits(130);
var key = new RSAKeyPair("${rsaPubKey.pubExponent}","","${rsaPubKey.modulus}");
var rsaPassword=encryptedString(key, md5password);
服務器用rsa的jar包:bcprov-jdk15on-150.jar
import javax.crypto.Cipher;
import java.security.KeyPair;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
java代碼:
KeyPair keyPair = RSAUtil.generateKeyPair();
RSAPublicKey publicKey = (RSAPublicKey)keyPair.getPublic();
RSAPrivateKey privateKey = (RSAPrivateKey)keyPair.getPrivate();
以前在某公司某系統登錄模塊的主要技術,轉存至CSDN.

浙公網安備 33010602011771號