您好,欢迎来到微智科技网。
搜索
您的当前位置:首页.NET环境下实现DES及MD5加密

.NET环境下实现DES及MD5加密

来源:微智科技网


.NET环境下实现DES及MD5加密

摘要:加密技术通常用于保护机密信息的安全性和完整性。由于加密技术比较复杂,如果用户自行编程实现加密算法不但费时费力而且难以保证安全性和可靠性。微软发布的.NET框架中提供了一套完整的加密算法实现方法类,用户可以根据自己的需求直接调用,实现起来快速、安全、可靠。

关键词:.NET;DES;MD5

1.NET环境下与安全相关的类

.NET的System.Security.Cryptography命名空间中包含一系列类,能够实现对称和非对称加密、创建哈希值和生成随机数等功能,如表1所示。

下面举例说明如何在程序中使用.NET安全类实现DES和MD5加密。

2DES算法实现

在项目中新建一个类,命名为MyCryptography,成员的主要功能如表2所示。

在程序中加入对System.IO,System.Security.Cryptography,System.Text三个名空间的引用。

主要代码:

Private plain As String‟明文

Private code As Byte() „密文

Private md5code As Byte()‟MD5值

Private key As Byte()‟DES密钥

Private IV As Byte() „DES向量

Private descsp As DESCryptoServiceProvider‟DES算法提供程序对象

Public Sub New()

CreateDESKey()

End Sub

„生成DES加密算法的密钥和初始化向量,在构造函数New()中调用

Private Sub CreateDESKey()

Dim byte_key As Byte()={123,112,22,11,21,211,111,215}

Dim byte_IV As Byte()= {26,78,91,161,71,55,185,30}

key = byte_key

IV = byte_IV

descsp = New DESCryptoServiceProvider

descsp.Key = byte_key

descsp.IV = byte_key

End Sub

„加密函数

Private Function DESEncrypt(ByVal plain As String, SymmetricAlgorithm) As Byte()

Dim ms As New MemoryStream()

Dim enStream As New CryptoStream(ms, key.CreateEncrypt

or, CryptoStreamMode.Write)

Dim sw As New StreamWriter(enStream)

sw.WriteLine(plain)

sw.Close()

enStream.Close()

code = ms.ToArray

ByVal key As

ms.Close()

Return code

End Function

„解密函数

Private Function DESDecrypt(ByVal code As Byte(), ByVal key As SymmetricAlgorithm) As String

Dim ms As New MemoryStream(code)

Dim deStream As New CryptoStream(ms, key.CreateDecrypt

or, CryptoStreamMode.Read)

Dim sr As New StreamReader(deStream)

Dim val As String = sr.ReadLine()

sr.Close()

deStream.Close()

ms.Close()

Return val

End Function

„对明文进行加密,返回的密文为十六进制字符串

Public Function enDES(ByVal plain As String) As String

Dim strcode As String = “”

Me.DESEncrypt(plain, descsp)

Dim i As Integer = 0

For i = 0 To code.Length - 1

strcode = strcode & Hex(code(i))

Next

Return strcode

End Function

„实现解密的函数

Public Function deDES() As String

Dim strplain As String = “”

strplain = Me.DESDecrypt(code, descsp)

Return strplain

End Function

3MD5算法实现

„得到明文的MD5值

Private Function CreateMD5Code(ByVal plain As String)

„用UTF-32格式对明文进行编码

Dim ecd As System.Text.Encoding

ecd = Encoding.GetEncoding(“utf-32”)

„将明文转换为字节数组

Dim dtcode() As Byte = ecd.GetBytes(plain)

„计算明文的MD5值

Dim md5csp As New MD5CryptoServiceProvider

Return md5csp.ComputeHash(dtcode)

End Function

„将MD5值转换为十六进制字符串

As Byte()

Public Function MD5(ByVal plain As String) As String

md5code = Me.CreateMD5Code(plain)

Dim strmd5 As String = “”

Dim i As Integer = 0

For i = 0 To md5code.Length - 1

strmd5 = strmd5 & Hex(md5code(i)) Next

Return strmd5

End Function

使用时只需实例化MyCryptography类,调用enDES()、deDES()和MD5()函数并传入明文作为参数即可实现DES和MD5加密功能。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务