asp.net mvc4密码验证 [英] asp.net mvc4 password verification

查看:118
本文介绍了asp.net mvc4密码验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用asp.net mvc4 C#创建了一个Web应用程序,但我不知道如何处理用户注册的密码。如何编写加密来将密码保存到数据库(sql server)中,并在登录Web之前解密密码以进行验证。对我有什么参考?

解决方案

  public   static   string 加密( string  toEncrypt, bool  useHashing)
{
byte [] keyArray;
byte [] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
System.Configuration.AppSettingsReader settingsReader =
new AppSettingsReader();
string key =( string )settingsReader.GetValue( SecurityKey
typeof 字符串));
if (useHashing)
{
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider ();
keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
hashmd5.Clear();
}
else
keyArray = UTF8Encoding.UTF8.GetBytes(key);
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
tdes.Key = keyArray;
tdes.Mode = CipherMode.ECB;
tdes.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = tdes.CreateEncryptor();
byte [] resultArray =
cTransform.TransformFinalBlock(toEncryptArray, 0
toEncryptArray.Length);
tdes.Clear();
return Convert.ToBase64String(resultArray, 0 ,resultArray.Length);
}







  public   static   string 解密( string  cipherString, bool  useHashing)
{
byte [ ] keyArray;
byte [] toEncryptArray = Convert.FromBase64String(cipherString);
System.Configuration.AppSettingsReader settingsReader =
new AppSettingsReader();
string key =( string )settingsReader.GetValue( SecurityKey
typeof 字符串));

if (useHashing)
{
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
hashmd5.Clear();
}
else
{
keyArray = UTF8Encoding.UTF8.GetBytes(key);
}
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
tdes.Key = keyArray;
tdes.Mode = CipherMode.ECB;
tdes.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = tdes.CreateDecryptor();
byte [] resultArray = cTransform.TransformFinalBlock(
toEncryptArray, 0 ,toEncryptArray 。长度);
tdes.Clear();
return UTF8Encoding.UTF8.GetString(resultArray);
}



使用此代码加密解密密码。将值存储为加密格式并从DB中检索密码并对其进行解密并与用户输入的值进行比较。我在密码学中使用tripleDES algorthim



全部是


i created a web application with asp.net mvc4 C#, but i don't know how to handle password for user registeration. how can i write a encrypt to save the password into database (sql server) and also decrypt password for verification before sign in into the web. any reference for me?

解决方案

public static string Encrypt(string toEncrypt, bool useHashing)
{
    byte[] keyArray;
    byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
    System.Configuration.AppSettingsReader settingsReader = 
                                        new AppSettingsReader();
    string key = (string)settingsReader.GetValue("SecurityKey", 
                                                     typeof(String));
    if (useHashing)
    {
        MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
        keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
        hashmd5.Clear();
    }
    else
        keyArray = UTF8Encoding.UTF8.GetBytes(key);
    TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
    tdes.Key = keyArray;
    tdes.Mode = CipherMode.ECB;
    tdes.Padding = PaddingMode.PKCS7;
    ICryptoTransform cTransform = tdes.CreateEncryptor();
    byte[] resultArray = 
      cTransform.TransformFinalBlock(toEncryptArray, 0, 
      toEncryptArray.Length);
    tdes.Clear();
    return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}




public static string Decrypt(string cipherString, bool useHashing)
{
    byte[] keyArray;
    byte[] toEncryptArray = Convert.FromBase64String(cipherString);
    System.Configuration.AppSettingsReader settingsReader = 
                                        new AppSettingsReader();
    string key = (string)settingsReader.GetValue("SecurityKey", 
                                                 typeof(String));
            
    if (useHashing)
    {
        MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
        keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
        hashmd5.Clear();
    }
    else
    {
        keyArray = UTF8Encoding.UTF8.GetBytes(key);
    }
    TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
    tdes.Key = keyArray;
    tdes.Mode = CipherMode.ECB;
    tdes.Padding = PaddingMode.PKCS7;
    ICryptoTransform cTransform = tdes.CreateDecryptor();
    byte[] resultArray = cTransform.TransformFinalBlock(
                         toEncryptArray, 0, toEncryptArray.Length);            
    tdes.Clear();
    return UTF8Encoding.UTF8.GetString(resultArray);
}


use this code to encrypt decrypt password. store the value as encrypted format and retrieve the password from DB and decrypt it and compare with user entered value.Here i am using tripleDES algorthim in cryptography

thats all


这篇关于asp.net mvc4密码验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆