0
我想加密我的密碼並存儲到我的數據庫SQL Server 2008 R2中。 爲此,我從文本框中取出密碼並使用正確的功能加密,並希望在後端存儲。加密密碼的數據類型
告訴我我必須使用哪個數據類型來加密密碼列。
我想加密我的密碼並存儲到我的數據庫SQL Server 2008 R2中。 爲此,我從文本框中取出密碼並使用正確的功能加密,並希望在後端存儲。加密密碼的數據類型
告訴我我必須使用哪個數據類型來加密密碼列。
命名空間:
using System.Security.Cryptography;
加密功能:
public static string Encrypt(string Message)
{
string Password = Message;
byte[] Results;
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();
byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(Password));
TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();
TDESAlgorithm.Key = TDESKey;
TDESAlgorithm.Mode = CipherMode.ECB;
TDESAlgorithm.Padding = PaddingMode.PKCS7;
byte[] DataToEncrypt = UTF8.GetBytes(Message);
try
{
ICryptoTransform Encryptor = TDESAlgorithm.CreateEncryptor();
Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length);
}
finally
{
TDESAlgorithm.Clear();
HashProvider.Clear();
}
return Convert.ToBase64String(Results);
}
解密函數:
public static string Decrypt(string Message)
{
string Password = Message;
byte[] Results;
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();
byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(Password));
TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();
TDESAlgorithm.Key = TDESKey;
TDESAlgorithm.Mode = CipherMode.ECB;
TDESAlgorithm.Padding = PaddingMode.PKCS7;
byte[] DataToDecrypt = Convert.FromBase64String(Message);
try
{
ICryptoTransform Decryptor = TDESAlgorithm.CreateDecryptor();
Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length);
}
finally
{
TDESAlgorithm.Clear();
HashProvider.Clear();
}
return UTF8.GetString(Results);
}
如何使用?
對於加密:
string encryptpassword=Encrypt(txtPassword.Text.Trim());
對於解密:
string decryptpassword=Decrypt(txtPassword.Text.Trim());
注:txtPassword是一個文本框,在這裏你可以輸入密碼
這是如何回答「我應該使用哪種數據類型?」的問題? – Patrick
VARCHAR()。順便說一句,你可能想讀這個:http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity –
加密的字符串仍然是一個字符串。像任何其他字符串一樣存儲它。另外,不要*加密*密碼,*散列*。有一個重大的區別。 – David