1
vb.net에서 rijndael을 사용하여 암호화하고 해독하는 동안 문제가 있습니다.vb.net rijndael 한도는 64 자
64 자 이상의 문자열에서는 작동하지 않습니다. 내 Rijndael을 구성 중에 내가 그리워 아무것도
Private Function prepareRijn() As Rijndael
Dim KEY As String = Left(_KEY, 32)
Dim IV As String = Right(_KEY, 32)
Dim enc As New System.Text.UTF8Encoding
Dim byteKEY() As Byte = enc.GetBytes(KEY)
Dim byteIV() As Byte = enc.GetBytes(IV)
Dim alg As Rijndael = Rijndael.Create
alg.BlockSize = 256
alg.KeySize = 256
alg.Padding = PaddingMode.Zeros
alg.Mode = CipherMode.CBC
alg.Key = byteKEY
alg.IV = byteIV
Return alg
End Function
Function decrypt(ByVal encrypted As String) As String
encrypted = encrypted.Replace("Q2FrZQ==.", "")
Dim enc As New System.Text.UTF8Encoding
Dim alg As Rijndael = prepareRijn()
Dim ms As New MemoryStream
Dim cs As CryptoStream = New CryptoStream(ms, alg.CreateDecryptor, CryptoStreamMode.Write)
Dim data() As Byte = Convert.FromBase64String(encrypted)
cs.Write(data, 0, data.Length)
'ms.SetLength(data.Length)
Dim decrypted() As Byte
decrypted = ms.ToArray
cs.Close()
Return enc.GetString(decrypted)
End Function
Function encrypt(ByVal decrypt As String) As String
decrypt = decrypt + " "
Dim alg As Rijndael = prepareRijn()
Dim ms As New MemoryStream()
Dim cs As CryptoStream = New CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write)
Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes(decrypt)
cs.Write(data, 0, data.Length)
'ms.SetLength(data.Length)
Dim encrypted() As Byte = ms.ToArray()
cs.Close()
Return Convert.ToBase64String(encrypted)
End Function
가 : 여기 내 코드?
감사합니다. 내 경우에 매우 잘 작동합니다. – user3073660