潛移默化學會WPF(安全篇<一>)--MD5加密三種方法加實踐 - AYUI框架 - 博客園
阿新 • • 發佈:2019-03-02
get exist 發揮 post bstr alt ado hpa bst 原文:潛移默化學會WPF(安全篇<一>)--MD5加密三種方法加實踐 - AYUI框架 - 博客園
一、MD5潛移默化公式
System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile( 你要加密的string字符串 , "MD5");//密碼加密
備註:MD5你可以換成SHA1 就是SHA1加密了,前提是你要引入 System.Web.dll 類庫
MS SQL和MySQL的MD5加密
MS SQL:
SELECT SUBSTRING(SYS.FN_VARBINTOHEXSTR(HASHBYTES(‘MD5‘,‘123456‘)),11,16) --換成32就是32位的
MY SQL:直接SELECT MD5(‘123456‘)
實踐一下
public static string md5(string str,int code)
{
if(code==16) //16位MD5加密(取32位加密的9~25字符)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5").ToLower().Substring(8,16) ;
}
else//32位加密
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5").ToLower();
}
}
使用該函數加密,str是原始字符串,函數返回加密後的字符串
插入數據用ADO.NET
另一個我是自己寫好了個類 ,自己引進去就可以用了(你可以自由發揮哦,中間你可以加任何你想加的東東)
MD5加密 源寫法
using System;
using System.Text;
using System.Security;
usingSystem.Security.Cryptography;
using System.IO;
namespace CommonUtility.Cryptography
{
/// <summary>
/// MD5加密類,註意經MD5加密過的信息是不能轉換回原始數據的
/// ,請不要在用戶敏感的信息中使用此加密技術,比如用戶的密碼,
/// 請盡量使用對稱加密
/// </summary>
public class MD5Encrypt
{
private MD5 md5;
/// <summary>
/// 構造函數
/// </summary>
public MD5Encrypt()
{
md5 = new MD5CryptoServiceProvider();
}
/// <summary>
/// 從字符串中獲取散列值
/// </summary>
/// <param name="str">要計算散列值的字符串</param>
/// <returns></returns>
public string GetMD5FromString(string str)
{
byte[] toCompute = Encoding.Unicode.GetBytes(str);
byte[] hashed = md5.ComputeHash(toCompute, 0, toCompute.Length);
return Encoding.ASCII.GetString(hashed);
}
/// <summary>
/// 根據文件來計算散列值
/// </summary>
/// <param name="filePath">要計算散列值的文件路徑</param>
/// <returns></returns>
public string GetMD5FromFile(string filePath)
{
bool isExist = File.Exists(filePath);
if (isExist)//如果文件存在
{
FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(stream, Encoding.Unicode);
string str = reader.ReadToEnd();
byte[] toHash = Encoding.Unicode.GetBytes(str);
byte[] hashed = md5.ComputeHash(toHash, 0, toHash.Length);
stream.Close();
return Encoding.ASCII.GetString(hashed);
}
else//文件不存在
{
throw new FileNotFoundException("File not found!");
}
}
}
}
先不寫了,沒評論沒動力
潛移默化學會WPF(安全篇<一>)--MD5加密三種方法加實踐 - AYUI框架 - 博客園