des加密的问题,老是出错,高手看看哪里出了问题,谢谢!

speedy 2006-03-06 09:34:25
Imports System.Security
Imports System.Security.Cryptography
Imports System.Text

Public Class encodecoded
Public Sub New()

End Sub

Public Shared Function Encrypt(ByVal pToEncrypt As String, ByVal sKey As String) As String
Dim Vector() As Byte = {&H12, &H44, &H16, &HEE, &H88, &H15, &HDD, &H41}
Dim des As New DESCryptoServiceProvider
Dim inputByteArray() As Byte
inputByteArray = Encoding.Default.GetBytes(pToEncrypt)
'建立加密对象的密钥和偏移量
'原文使用ASCIIEncoding.ASCII方法的GetBytes方法
'使得输入密码必须输入英文文本
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey)
des.IV = Vector
'写二进制数组到加密流
'(把内存流中的内容全部写入)
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 pToDecrypt As String, ByVal sKey As String) As String
Dim Vector() As Byte = {&H12, &H44, &H16, &HEE, &H88, &H15, &HDD, &H41}
Dim des As New DESCryptoServiceProvider
'把字符串放入byte数组
Dim inputByteArray() As Byte
inputByteArray = Encoding.Default.GetBytes(pToDecrypt)
'建立加密对象的密钥和偏移量,此值重要,不能修改
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey)
des.IV = Vector
Dim ms As New System.IO.MemoryStream
Dim cs As New CryptoStream(ms, des.CreateDecryptor, CryptoStreamMode.Write)
cs.Write(inputByteArray, 0, inputByteArray.Length)
Dim codestring As String
codestring = Encoding.Default.GetString(ms.ToArray)
cs.FlushFinalBlock()
Return codestring
End Function
End Class

总是出现异常,在 cs.FlushFinalBlock()那里老是出现“ 要解密的数据的长度无效。"
谢谢啊
...全文
129 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
peilianhai 2006-03-09
  • 打赏
  • 举报
回复
cs.Write(inputByteArray, 0, inputByteArray.Length)
试试
cs.Write(inputByteArray, 0, inputByteArray.Length-1)
zhengoodman 2006-03-09
  • 打赏
  • 举报
回复
mark
speedy 2006-03-07
  • 打赏
  • 举报
回复
没有人回啊?
加密没有问题,解密的时候,就出现问题了

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧