當前位置:律師網大全 - 專利申請 - 求VB.NET的MD5算法調用

求VB.NET的MD5算法調用

下面是完整的類,可以設置任意密碼

'DES及md5加密解密----添加引用中添加對system.web的引用。

Imports?System.Security.Cryptography

Imports?System

Imports?System.Text

Imports?System.Web

'''?<summary>

'''?DES加密類

'''?</summary>

'''?<remarks></remarks>

Public?Class?DESEncrypt

Public?Sub?DESEncrypt()

End?Sub

Public?Shared?Function?Encrypt(ByVal?Text?As?String)?As?String

Return?Encrypt(Text,?"12345678")

End?Function

Public?Shared?Function?Encrypt(ByVal?Text?As?String,?ByVal?sKey?As?String)?As?String

Dim?des?As?New?DESCryptoServiceProvider()

Dim?inputByteArray?As?Byte()

inputByteArray?=?Encoding.Default.GetBytes(Text)

des.Key?=?ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey,?"md5").Substring(0,?8))

des.IV?=?ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey,?"md5").Substring(0,?8))

Dim?ms?As?New?System.IO.MemoryStream()

Dim?cs?As?New?CryptoStream(ms,?des.CreateEncryptor(),?CryptoStreamMode.Write)

cs.Write(inputByteArray,?0,?inputByteArray.Length)

cs.FlushFinalBlock()

Dim?ret?As?New?StringBuilder()

Dim?b?As?Byte

For?Each?b?In?ms.ToArray()

ret.AppendFormat("{0:X2}",?b)

Next

Return?ret.ToString()

End?Function

Public?Shared?Function?Decrypt(ByVal?Text?As?String)?As?String

Return?Decrypt(Text,?"12345678")

End?Function

Public?Shared?Function?Decrypt(ByVal?Text?As?String,?ByVal?sKey?As?String)?As?String

Dim?des?As?New?DESCryptoServiceProvider()

Dim?len?As?Integer

len?=?Text.Length?/?2

Dim?inputByteArray(len?-?1)?As?Byte

Dim?x,?i?As?Integer

For?x?=?0?To?len?-?1

i?=?Convert.ToInt32(Text.Substring(x?*?2,?2),?16)

inputByteArray(x)?=?CType(i,?Byte)

Next

des.Key?=?ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey,?"md5").Substring(0,?8))

des.IV?=?ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey,?"md5").Substring(0,?8))

Dim?ms?As?New?System.IO.MemoryStream()

Dim?cs?As?New?CryptoStream(ms,?des.CreateDecryptor(),?CryptoStreamMode.Write)

cs.Write(inputByteArray,?0,?inputByteArray.Length)

cs.FlushFinalBlock()

Return?Encoding.Default.GetString(ms.ToArray())

End?Function

End?Class

'以下是調用方法

Public?Class?Form1

Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click?'加密

Dim?str_Encrypt?As?String?=?DESEncrypt.Encrypt("妳要加密的文本,可以是任意長度",?"密碼,可以很長,如果省略這個參數就是默認的12345678")

End?Sub

Private?Sub?Button2_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button2.Click?'解密

Dim?str_Decrypt?As?String?=?DESEncrypt.Decrypt("妳要解密的文本,?可以是任意長度",?"加密時用到的密碼,如果省略這個參數就是默認的12345678")

End?Sub

  • 上一篇:請問專利授權的條件是什麽?
  • 下一篇:關於區塊鏈專利重要性的論文
  • copyright 2024律師網大全