对称加密解密模块

本文介绍了一个使用DES算法实现的对称加密解密模块。该模块通过VB.NET编程语言实现,能够将明文转换为密文,并能将密文还原为原始明文。加密过程涉及字符串转换、密钥生成及加密流操作。

 

标题  对称加密解密模块     选择自 iwebsms 的 Blog
关键字  对称加密解密模块
出处 
 

Imports System.Text

Imports System.Security.Cryptography

 

Module ModSecurity

    Function EnText(ByVal Text As String, ByVal sKey As String) As String

        Text = Text.ToLower

        Dim des As New DESCryptoServiceProvider

        Dim inputByteArray() As Byte

        inputByteArray = Encoding.Default.GetBytes(Text)

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

        des.IV = ASCIIEncoding.ASCII.GetBytes(Left(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5"), 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

 

    Function DeText(ByVal Text As String, ByVal sKey As String) As String

        Dim des As New DESCryptoServiceProvider

        Dim len As Integer

        len = Text.Length / 2 - 1

        Dim inputByteArray(len) As Byte

        Dim x, i As Integer

        For x = 0 To len

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

            inputByteArray(x) = CType(i, Byte)

        Next

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

        des.IV = ASCIIEncoding.ASCII.GetBytes(Left(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5"), 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 Module


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值