VB.NET 的 DES 加密与解密(转载于nofort博客)
来源:互联网 发布:个人业务网站php源码 编辑:程序博客网 时间:2024/06/16 13:30
MD5和SHA的加密方式都是单向的,就算是我写的程序用户的密码用这两种方式保存后,我对着看也不知道他们的密码是什么,这用在保存密码上是不错的,但如果是一些需要能将密文还原的应用来说就不合适了,所以接下来就是我们的DES算法上场了。
DES要求两个关健数据 一个是key(密钥)一个是初始化向量(IV)只要这两个数据一致就可以还原出原来的数据,为了方便还是写成函数
TripleDES算法基本上DES是一样的不过加密的强度不同,同SHA1和SHA512区别一样,更高的强度,意味着运算速度的相应下降。
其实用这种方法加密最重要的是保护好KEY和IV。
解密函数
调用
DES要求两个关健数据 一个是key(密钥)一个是初始化向量(IV)只要这两个数据一致就可以还原出原来的数据,为了方便还是写成函数
TripleDES算法基本上DES是一样的不过加密的强度不同,同SHA1和SHA512区别一样,更高的强度,意味着运算速度的相应下降。
其实用这种方法加密最重要的是保护好KEY和IV。
加密函数
Public Function EncryptDes(ByVal SourceStr As String, ByVal myKey As String, ByVal myIV As String) As String '使用的DES对称加密 Dim des As New System.Security.Cryptography.DESCryptoServiceProvider 'DES算法 'Dim DES As New System.Security.Cryptography.TripleDESCryptoServiceProvider'TripleDES算法 Dim inputByteArray As Byte() inputByteArray = System.Text.Encoding.Default.GetBytes(SourceStr) des.Key = System.Text.Encoding.UTF8.GetBytes(myKey) 'myKey DES用8个字符,TripleDES要24个字符 des.IV = System.Text.Encoding.UTF8.GetBytes(myIV) 'myIV DES用8个字符,TripleDES要24个字符 Dim ms As New System.IO.MemoryStream Dim cs As New System.Security.Cryptography.CryptoStream(ms, des.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write) Dim sw As New System.IO.StreamWriter(cs) sw.Write(SourceStr) sw.Flush() cs.FlushFinalBlock() ms.Flush() EncryptDes = Convert.ToBase64String(ms.GetBuffer(), 0, ms.Length) End Function
解密函数
Public Function DecryptDes(ByVal SourceStr As String, ByVal myKey As String, ByVal myIV As String) As String '使用标准DES对称解密 Dim des As New System.Security.Cryptography.DESCryptoServiceProvider 'DES算法 'Dim DES As New System.Security.Cryptography.TripleDESCryptoServiceProvider'TripleDES算法 des.Key = System.Text.Encoding.UTF8.GetBytes(myKey) 'myKey DES用8个字符,TripleDES要24个字符 des.IV = System.Text.Encoding.UTF8.GetBytes(myIV) 'myIV DES用8个字符,TripleDES要24个字符 Dim buffer As Byte() = Convert.FromBase64String(SourceStr) Dim ms As New System.IO.MemoryStream(buffer) Dim cs As New System.Security.Cryptography.CryptoStream(ms, des.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Read) Dim sr As New System.IO.StreamReader(cs) DecryptDes = sr.ReadToEnd() End Function
调用
Dim mytxt, EDes, msgtxt As String mytxt = "nyfort的BLOG" '加密 '注意KEY和IV只能用英文和数字,des是8个字符 EDes = EncryptDes(mytxt, "12345678", "abcdefgh") msgtxt = "nyfort的BLOG" & vbCrLf & "SHE加密" & vbCrLf & EDes MessageBox.Show(msgtxt, "SHE加密") '解密 mytxt = DecryptDes(EDes, "12345678", "abcdefgh") msgtxt = EDes & vbCrLf & "SHE解密" & vbCrLf & mytxt MessageBox.Show(msgtxt, "SHE解密")
0 0
- VB.NET 的 DES 加密与解密(转载于nofort博客)
- vb.net DES加密与解密
- Java与.NET DES加密解密互转[转载]
- 今天开始写博客,专注于.net的加密与解密
- java与.NET通用的3DES加密解密方法
- JAVA与.NET DES加密解密
- ASP.NET中的DES加密解密,可用于URL传参
- .NET DES加密、解密
- 使用DES加密解密代码(C# & vb.Net)
- Des加密与解密
- DES加密与解密
- DES加密与解密算法的实现
- DES加密与解密的java实现
- DES的加密与解密(可逆)
- DES的加密解密
- Des解密 以及 将。net的DEs加密 用android 的DES解密
- asp.net DES加密解密
- asp.net DES加密解密
- ubuntu技巧--sudo apt-get update错误
- linux命令之grep命令
- 1064. Complete Binary Search Tree (30)
- UVALive 3938 一道被我WA了的线段树
- μCOS_II移植到STM32F103VC过程
- VB.NET 的 DES 加密与解密(转载于nofort博客)
- Collections.sort两种用法
- js的yes/no确认框
- 「每周review」C++ Prinmer Chapter2
- 修改ECSHOP结算中心“立即使用支付宝支付”按钮样式
- 排序算法:插入排序
- How the Main Thread works
- HDU 2832
- 基于三层架构的 Web 层需要解决的问题