ASP. NET Encryption and Decryption MD5 Encryption Help Class Implementation Code
- 2021-10-13 07:05:04
- OfStack
public class TrialHelper
{ // Default key vector
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/// <summary>
/// DES Encrypted string
/// </summary>
/// <param name="encryptString"> String to be encrypted </param>
/// <param name="encryptKey"> Encryption key , Requirements are 8 Bit </param>
/// <returns> Encryption successfully returns the encrypted string, and fails to return the source string </returns>
public static string EncryptDES( string encryptString, string encryptKey = "" )
{
try
{
if (string.IsNullOrEmpty(encryptKey) || encryptKey.Length < 8)
{
encryptKey = "winform01";
}
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;
}
}
/// <summary>
/// DES Decryption string
/// </summary>
/// <param name="decryptString"> String to be decrypted </param>
/// <param name="decryptKey"> Decryption key , Requirements are 8 Bit , Same as the encryption key </param>
/// <returns> Successful decryption returns the decrypted string, failed to return to the source string </returns>
public static string DecryptDES( string decryptString, string decryptKey = "" )
{
try
{
if (string.IsNullOrEmpty(decryptKey) || decryptKey.Length < 8)
{
decryptKey = "winform01";
}
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
/// <summary>
/// MD5 Data encryption
/// </summary>
/// <param name="sDataIn"> Encryption field </param>
/// <returns> Encrypted string </returns>
public static string GetMD5( string sDataIn )
{
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bytValue, bytHash;
bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn);
bytHash = md5.ComputeHash(bytValue);
md5.Clear();
string sTemp = "";
for (int i = 0; i < bytHash.Length; i++)
{
sTemp += bytHash[i].ToString("x").PadLeft(2, '0');
}
return sTemp;
}
}
Call:
// Get login information
loginRecord.Name = tbName.Text.Trim();
loginRecord.MD5Pwd = TrialHelper.GetMD5(tbPwd.Password); // Save to database MD5 Encryption mode
loginRecord.Pwd = TrialHelper.EncryptDES(tbPwd.Password);// Remember the password des Encryption method, save to local