111,097
社区成员




internal RSACryptoServiceProvider Rsa
{
get
{
if (HttpContext.Cache["Rsa"] != null)
{
RSACryptoServiceProvider encryptKeys = (RSACryptoServiceProvider)HttpContext.Cache["Rsa"];
return encryptKeys;
}
else
{
return new RSACryptoServiceProvider();
}
}
set
{
HttpContext.Cache.Remove("Rsa");
HttpContext.Cache.Insert("Rsa", value);
}
}
public static RSACryptoServiceProvider GetRsa()
{
RSACryptoServiceProvider Rsa = new RSACryptoServiceProvider(1024);
return Rsa;
}
public ActionResult SignUp()
{
this.Rsa = Security.GetRsa();
RSAParameters param= this.Rsa.ExportParameters(true);
//传公钥
TempData["exponent"] = Util.BytesToHexString(param.Exponent);
TempData["key"] = Util.BytesToHexString(param.Modulus);
string teststr = System.Text.Encoding.Default.GetString(
Rsa.Decrypt(
Rsa.Encrypt(System.Text.Encoding.Default.GetBytes(Security.GetMd5Hash("123")),false)
, false)
);
teststr = Util.BytesToHexString(Rsa.Encrypt(System.Text.Encoding.Default.GetBytes(Security.GetMd5Hash("123")), false));
UserInfo user = new UserInfo();
user.Birthday = DateTime.Now.Date;
return View(user);
}
$(function () {
$("#submitbutton").click(function() {
if (document.getElementById("Pwd").value != document.getElementById("Pwd2").value || document.getElementById("Pwd").value.length < 3 || document.getElementById("Pwd").value.length > 16) {
document.getElementById("error").innerHTML = "请输入3到16位的密码(字母,数字,特殊字符),请保持两次输入一致!";
}
else {
//Md5后传输
//var hash = hex_md5(document.getElementById("Pwd").value);
var hash = document.getElementById("Pwd").value;
//RSA Encrypt
var exponent = document.getElementById("exponent").innerHTML;
var rsa_n = document.getElementById("key").innerHTML;
setMaxDigits(131);
var key = new RSAKeyPair(exponent, "", rsa_n);
hash = encryptedString(key, "111");//base64encode(strUnicode2Ansi(hash))+"");
//反绑定
document.getElementById("Pwd").value = hash;
document.getElementById("Pwd2").value = hash;
document.getElementById("error").innerHTML = "";
document.getElementById("submit").click();
}
});
});
[HttpPost]
public ActionResult SignUp(UserInfo user)
{
user.UserId = user.UserId.ToLower(); //邮箱不区分大小写
user.UserGUID = Guid.NewGuid();
user.CreatedDate = DateTime.Now;
user.IsEnabled = false;
user.Pwd = Convert.ToBase64String(Rsa.Decrypt(Util.HexStringToBytes(user.Pwd), false));//这里出现“不正确的数据。”