Je cherche une classe de cryptage de chaîne générale dans .NET. (A ne pas confondre avec la classe 'SecureString'.)Cryptage de chaînes de caractères général
J'ai commencé à créer ma propre classe, mais je pensais qu'il devait y avoir une classe .NET qui vous permet déjà de crypter/décrypter des chaînes de n'importe quel codage avec tout fournisseur de services cryptographiques.
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
Uhm, vous devez passer IV pour le décryptage. – Migol
@Migol - Pourriez-vous préciser votre commentaire? – user111370
IV peut être envoyé via opentext et contient des données autres que la clé pour déchiffrer votre chaîne. – Migol