1. 程式人生 > >潛移默化學會WPF(安全篇<一>)--MD5加密三種方法加實踐 - AYUI框架 - 博客園

潛移默化學會WPF(安全篇<一>)--MD5加密三種方法加實踐 - AYUI框架 - 博客園

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;
using
System.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框架 - 博客園