日志文章

2007年06月14日 16:39:42

MD5加密

基本个人用,解释权归我,但不反对大家用 嘿嘿!
Imports System.IO
Imports System.Security
Imports System.Security.Cryptography
Imports System.Text

  Public Function funcMD5()Function funcMD5(ByVal str As String) As String
    Return BitConverter.ToString(CType(CryptoConfig.CreateFromName("MD5"), HashAlgorithm).ComputeHash((New UnicodeEncoding).GetBytes(Trim(str))))
  End Function




C#写法:
using System.Security.Cryptography;
using System.Text;
using System;

namespace Forum.BLL
{
  public class MD5
  {
    public string GetEncryptString(string str)
    {
        return BitConverter.ToString(((HashAlgorithm)CryptoConfig.CreateFromName   ("MD5")).ComputeHash(new UnicodeEncoding().GetBytes(str))).Replace("-", "");
      }
  }
}



VB.NET中的写法:
Public Shared Function MD5(ByVal strSource As String, ByVal Code As Int16) As String
    '这里用的是ascii编码密码原文,如果要用汉字做密码,可以用UnicodeEncoding,但会与ASP中的MD5函数不兼容
    Dim dataToHash As Byte() = (New System.Text.ASCIIEncoding).GetBytes(strSource)
    Dim hashvalue As Byte() = CType(System.Security.Cryptography.CryptoConfig.CreateFromName("MD5"), System.Security.Cryptography.HashAlgorithm).ComputeHash(dataToHash)
    Dim i As Integer
    Select Case Code
        Case 16 '选择16位字符的加密结果
          For i = 4 To 11
            MD5 += Hex(hashvalue(i)).ToLower
          Next
        Case 32 '选择32位字符的加密结果
          For i = 0 To 15
            MD5 += Hex(hashvalue(i)).ToLower
          Next
        Case Else 'Code错误时,返回全部字符串,即32位字符
          For i = 0 To hashvalue.Length - 1
            MD5 += Hex(hashvalue(i)).ToLower
          Next
    End Select
  End Function

测试VB.NET:
MessageBox.Show(MD5("123", 32).ToString())

Tags: 加密  

类别: 无分类 |  评论(2) |  浏览(1916) |  收藏
2楼 [匿名]guest 2007年06月21日 21:08:21 Says:
不管..先用再说~
发表评论
看不清楚,换一张