Vb.net Net使用RSA加密

Vb.net Net使用RSA加密,vb.net,encryption,rsa,Vb.net,Encryption,Rsa,我是否可以将其转换为使用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 Ne

我是否可以将其转换为使用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

对于加密,可以将(受信任的)公钥而不是DES密钥传递给函数。您可以保持加密与现在相同,但不使用现在替换的DES密钥,而是使用随机数生成器生成此密钥。然后可以使用PKCS#1 v1.5填充对DES密钥进行加密。最后,您需要某种容器格式来发送加密的DES密钥和密文

要解密,请使用非对称密钥对的私钥对DES密钥进行解密,然后按现在的方式对纯文本进行解密


请注意,您应该使用IV,不应使用DES或ECB模式加密,最好用UTF-8等替代ASCII。如果这是用于任何重要项目,请寻求专家帮助。如果可能,找到一个库函数来为您完成所有这些,例如,创建PKCS#7/CMS EncryptedData结构的函数。

您不能简单地
将对称加密函数转换为非对称加密函数。这涉及到很多因素,除非你知道自己在做什么,否则你不会理解任何事情。我建议您在做任何其他事情之前,首先清楚地了解什么是密码术以及对称密码术和非对称密码术之间的区别!:)