MD5加密

   public string Second_MD5(string str)
{
MD5 md5 = MD5.Create();//创建MD5实例
byte[] strbyte = Encoding.UTF8.GetBytes(str);//用UTF8这样对于汉字的编码就和网上一样了
byte[] mdbyte = md5.ComputeHash(strbyte);//将字节数组转成哈希值
StringBuilder sb = new StringBuilder();
//将加密之后的二进制数组转换成字符串进行输出
//是将二进制数组中的每一个元素逐个转换成字符串
foreach (var item in mdbyte)
{
sb.Append(item.ToString("x2"));//将哈希值中字节数组逐个转成16进制
}
return sb.ToString();
}

PS:得到文件的MD5值:

private static string GetMD5HashFromFile(string fileName) {
try {
FileStream file = new FileStream(fileName, FileMode.Open);
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(file);
file.Close(); StringBuilder sb = new StringBuilder();
for (int i = 0; i < retVal.Length; i++) {
sb.Append(retVal[i].ToString("x2"));
}
return sb.ToString();
} catch (Exception ex) {
throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message);
}
}

  另一种常用的加密算法:SHA1

        public string CreateSha1(string str)
{
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
byte[] utf8Byte = Encoding.UTF8.GetBytes(str);
byte[] hashByte = sha1.ComputeHash(utf8Byte);
//这个方法可以一步实现sha1加密算法 但是提示说是一种过时的方法 在asp.net4.5中已经过时
//string checkSignatureStr = FormsAuthentication.HashPasswordForStoringInConfigFile(str,
// System.Web.Configuration.FormsAuthPasswordFormat.SHA1.ToString());
string resultStr = BitConverter.ToString(hashByte);
resultStr=resultStr.Replace("-","").ToLower();
return resultStr;
}
上一篇:用C++基础语句写一个五子棋游戏


下一篇:Spark学习笔记——手写数字识别