请问如何在以下代码片段中返回解码字节而不是文本:
Public Shared Function decryptAsText(key As Byte(), ciphertext As Byte(), iv As Byte()) As String
Dim dec As String = Nothing
Try
Using rj = New Security.Cryptography.RijndaelManaged With {.Key = key, .IV = iv, .Mode = Security.Cryptography.CipherMode.CBC, .Padding = PaddingMode.PKCS7}
Using ms = New IO.MemoryStream(ciphertext)
Using cs = New Security.Cryptography.CryptoStream(ms, rj.CreateDecryptor(key, iv), Security.Cryptography.CryptoStreamMode.Read)
Using sr = New IO.StreamReader(cs)
dec = sr.ReadToEnd
End Using
End Using
End Using
End Using
Catch e As Exception
End Try
Return dec
End Function
我的尝试失败了
Public Shared Function decryptAsBytes(key As Byte(), ciphertext As Byte(), iv As Byte()) As Byte()
Try
Using rj = New Security.Cryptography.RijndaelManaged With {.Key = key, .IV = iv, .Mode = Security.Cryptography.CipherMode.CBC, .Padding = PaddingMode.PKCS7}
Using ms = New IO.MemoryStream(ciphertext)
Using cs = New Security.Cryptography.CryptoStream(ms, rj.CreateDecryptor(key, iv), Security.Cryptography.CryptoStreamMode.Read)
Dim l As Integer = CInt(cs.Length)
Dim b(l - 1) As Byte
cs.Read(b, 0, l)
Return b
End Using
End Using
End Using
Catch e As Exception
End Try
Return {}
End Function
终于成功了
Public Shared Function decryptAsBytes(key As Byte(), ciphertext As Byte(), iv As Byte()) As Byte()
Try
Using rj = New Security.Cryptography.RijndaelManaged With {.Key = key, .IV = iv, .Mode = Security.Cryptography.CipherMode.CBC, .Padding = PaddingMode.PKCS7}
Using ms = New IO.MemoryStream(ciphertext)
Using cs = New Security.Cryptography.CryptoStream(ms, rj.CreateDecryptor(key, iv), Security.Cryptography.CryptoStreamMode.Read)
Using ds = New IO.MemoryStream()
cs.CopyTo(ds)
Return ds.ToArray
End Using
End Using
End Using
End Using
Catch e As Exception
End Try
Return {}
End Function