无论如何,我可以将其转换为使用RSA加密吗?我对VB.Net有点新意,加密时更糟糕。感谢
Imports System.Text
Imports System.Security.Cryptography
Imports System.IO
Public Class ClsEncryption
Public Shared Function DESEncrypt(ByVal Data As String, ByVal Key As String) As String
Dim DES As New System.Security.Cryptography.DESCryptoServiceProvider
Dim dHash As New System.Security.Cryptography.MD5CryptoServiceProvider
Dim encrypted As String = ""
Try
Dim hash(7) As Byte
Dim temp As Byte() = dHash.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(Key))
Array.Copy(temp, 0, hash, 0, 8)
DES.Key = hash
DES.Mode = Security.Cryptography.CipherMode.ECB
Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = DES.CreateEncryptor
Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(Data)
encrypted = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
Return encrypted
Catch ex As Exception
End Try
End Function
End Class
答案 0 :(得分:0)
对于加密,您可以将(可信的)公钥而不是DES密钥传递给该函数。您可以保持加密与现在相同,但不应使用现在替换的DES密钥,而应使用随机数生成器生成此密钥。然后,您可以使用PKCS#1 v1.5填充加密DES密钥。最后,您需要某种容器格式来发送加密的DES密钥和密文。
要解密,请使用非对称密钥对的私钥解密DES密钥,然后按原样执行纯文本的解密。
请注意,您应该使用IV,不应使用DES或ECB模式加密,ASCII更好地替换为UTF-8等。如果这是针对任何重要项目的,请寻求专家帮助。如果可能的话,找一个库函数来为你完成所有这些,例如:创建PKCS#7 / CMS EncryptedData结构的东西。