Я ищу общий класс шифрования строк в .NET. (Не путать с классом «SecureString».)Общее шифрование строк
Я начал придумывать свой класс, но думал, что должен быть класс .NET, который уже позволяет шифровать/расшифровывать строки любой кодировки с помощью любой поставщик криптографических услуг.
Public Class SecureString
Private key() As Byte
Private iv() As Byte
Private m_SecureString As String
Public ReadOnly Property Encrypted() As String
Get
Return m_SecureString
End Get
End Property
Public ReadOnly Property Decrypted() As String
Get
Return Decrypt(m_SecureString)
End Get
End Property
Public Sub New(ByVal StringToSecure As String)
If StringToSecure Is Nothing Then StringToSecure = ""
m_SecureString = Encrypt(StringToSecure)
End Sub
Private Function Encrypt(ByVal StringToEncrypt As String) As String
Dim result As String = ""
Dim bytes() As Byte = Text.Encoding.UTF8.GetBytes(StringToEncrypt)
Using provider As New AesCryptoServiceProvider()
With provider
.Mode = CipherMode.CBC
.GenerateKey()
.GenerateIV()
key = .Key
iv = .IV
End With
Using ms As New IO.MemoryStream
Using cs As New CryptoStream(ms, provider.CreateEncryptor(), CryptoStreamMode.Write)
cs.Write(bytes, 0, bytes.Length)
cs.FlushFinalBlock()
End Using
result = Convert.ToBase64String(ms.ToArray())
End Using
End Using
Return result
End Function
Private Function Decrypt(ByVal StringToDecrypt As String) As String
Dim result As String = ""
Dim bytes() As Byte = Convert.FromBase64String(StringToDecrypt)
Using provider As New AesCryptoServiceProvider()
Using ms As New IO.MemoryStream
Using cs As New CryptoStream(ms, provider.CreateDecryptor(key, iv), CryptoStreamMode.Write)
cs.Write(bytes, 0, bytes.Length)
cs.FlushFinalBlock()
End Using
result = Text.Encoding.UTF8.GetString(ms.ToArray())
End Using
End Using
Return result
End Function
End Class
Эмм, вам необходимо пройти IV для дешифрования. – Migol
@Migol - Не могли бы вы прояснить свой комментарий? – user111370
IV может быть отправлен через opentext и содержит некоторые данные, кроме ключа, для расшифровки вашей строки. – Migol