用RSA實現Web單點登錄密碼的加密傳輸


在使用通用權限管理系統(吉日嘎拉)的單點登錄功能時,對登錄密碼使用了RSA加密(非對稱加密),有使用這個權限管理系統的可參考下。

 

前端部分,請引用以下幾個js文件:

<script type="text/javascript" src="ExtJS/jquery.js"></script>
<script type="text/javascript" src="ExtJS/BigInt.js" ></script>
<script type="text/javascript" src="ExtJS/RSA.js"></script>
<script type="text/javascript" src="ExtJS/Barrett.js"></script>

 下載:http://files.cnblogs.com/hnsongbiao/ExtJS.zip

登錄頁面前端主要代碼:

setMaxDigits(129);
var key = new RSAKeyPair("<%=strPublicKeyExponent%>", "", "<%=strPublicKeyModulus%>");
var password = document.getElementById("password");
var pwd = encryptedString(key, password.value);

 


后台主要功能代碼:

 

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
Session["private_key"] = rsa.ToXmlString(true);
RSAParameters parameter = rsa.ExportParameters(true);
strPublicKeyExponent = BytesToHexString(parameter.Exponent);
strPublicKeyModulus = BytesToHexString(parameter.Modulus);

    。。。。。。

rsa.FromXmlString((string)Session["private_key"]);
byte[] results = rsa.Decrypt(HexStringToBytes(password), false);
System.Text.ASCIIEncoding enc = new ASCIIEncoding();
password = enc.GetString(results);

 

 

 

 

下面截圖可以看到傳輸時密碼已經經過RSA非對稱加密了(我這里同時進行了對稱加密)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM