집 >백엔드 개발 >C#.Net 튜토리얼 >.net 암호화 알고리즘
공개 정적 문자열 암호화(문자열 소스)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] bytes = Encoding.UTF8.GetBytes(source);
byte[] 출력 = md5.ComputeHash(바이트);
return BitConverter.ToString(output);
}
最常见적MD5加密,但不带解密。
DES加解密.
공개 클래스 DES
{
비공개 상수 문자열 키 = "av&6^3*E";
공개 정적 문자열 암호화(문자열 소스)
{
DESCryptoServiceProvider des = 새로운 DESCryptoServiceProvider();
byte[] bytes = Encoding.UTF8.GetBytes(source);
des.Key = ASCIEEncoding.ASCII.GetBytes(key);
des.IV = ASCIIEncoding.ASCII.GetBytes(key);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(bytes, 0, bytes.Length);
cs.FlushFinalBlock();
StringBuilder sb = new StringBuilder();
foreach(ms.ToArray의 바이트 b)( ))
{
sb.AppendFormat("{0:X2}", b);
}
return sb.ToString();
}
공개 정적 문자열 복호화(문자열 소스)
{
if (소스 == null || source.Length == 0)
{
return source;
}
DESCryptoServiceProvider des = new DESCryptoServiceProvider() ;
바이트[] 바이트 = 새 바이트[source.Length / 2];
for (int x = 0; x
int i =(Convert.ToInt32(source.Substring(x * 2, 2), 16));
bytes[x] = (byte)i;
}
des.Key = ASCIEEncoding.ASCII.GetBytes(key);
des.IV = ASCIIEncoding.ASCII .GetBytes(키);
MemoryStream ms = 새 MemoryStream();
CryptoStream cs = 새 CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(bytes, 0, bytes.Length);
cs .FlushFinalBlock();
반환 Encoding.UTF8.GetString(ms.ToArray());
}
}