''' <summary>
''' Encrypts a memory string (i.e. variable).
''' </summary>
''' <param name="data">String to be encrypted.</param>
''' <param name="key">Encryption key.</param>
''' <param name="iv">Encryption initialization vector.</param>
''' <returns>Encrypted string.</returns>
Public Shared Function Encrypt(ByVal data As String, ByVal key As String, ByVal iv As String) As String
Dim bdata As Byte() = Encoding.ASCII.GetBytes(data)
Dim bkey As Byte() = HexToBytes(key)
Dim biv As Byte() = HexToBytes(iv)
Dim stream As MemoryStream = New MemoryStream
Dim encStream As CryptoStream = New CryptoStream(stream, des3.CreateEncryptor(bkey, biv), CryptoStreamMode.Write)
encStream.Write(bdata, 0, bdata.Length)
encStream.FlushFinalBlock()
encStream.Close()
Return BytesToHex(stream.ToArray())
End Function
''' <summary>
''' Decrypts a memory string (i.e. variable).
''' </summary>
''' <param name="data">String to be decrypted.</param>
''' <param name="key">Original encryption key.</param>
''' <param name="iv">Original initialization vector.</param>
''' <returns>Decrypted string.</returns>
Public Shared Function Decrypt(ByVal data As String, ByVal key As String, ByVal iv As String) As String
Dim bdata As Byte() = HexToBytes(data)
Dim bkey As Byte() = HexToBytes(key)
Dim biv As Byte() = HexToBytes(iv)
Dim stream As MemoryStream = New MemoryStream
Dim encStream As CryptoStream = New CryptoStream(stream, des3.CreateDecryptor(bkey, biv), CryptoStreamMode.Write)
encStream.Write(bdata, 0, bdata.Length)
encStream.FlushFinalBlock()
encStream.Close()
Return Encoding.ASCII.GetString(stream.ToArray())
End Function
6条答案
按热度按时间v1l68za41#
三人组?
您可以使用
System.Security.Cryptography.TripleDESCryptoServiceProvider
少量的代码来加密/解密...完全按照锡上说的做:)
s2j5cfk02#
TripleDES是一个非常好的选择,但是您也可以考虑AesCryptoServiceProvider(AES),它是一种现代的对称密码。
q3aa05253#
.net安全类:
散列
对称加密:使用相同的密钥进行加密和解密。
非对称加密:使用不同的密钥进行加密和解密。
7uzetpgm4#
这里是加密和解密函数与des3加密
j13ufse25#
您可以只使用RSA加密,因为这些是短字符串,这将使密钥交换更简单。
可以使用RSA加密的程度取决于密钥长度。
我是充气城堡rsa图书馆的粉丝。
yizd12fk6#
DES在这一点上已经过时了。下面是Wikipedia。如果你经常改变密钥,它可能是足够的,但是如果你暂时依赖一个密钥,AES似乎是一个更好的选择。
当然,这是一个你需要多少保护的问题,但是AES也是内置的。
我用AES处理小字符串,效果很好。
我所读到的关于TripleDES的内容是,由于DES很容易被破解,TripleDES仍然不是实质性的。