|
基本个人用,解释权归我,但不反对大家用 嘿嘿! 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())
|
一共有 2 条评论