У меня есть строка .NET, которая представляет собой кодированное Base64 представление массива зашифрованных байтов. Он производится так:Использование FromBase64Transform с помощью CryptoStream?
String Encrypt(String message)
{
CryptoStream cryptostream = ...
StreamWriter stream = new StreamWriter(cryptostream);
...
return Convert.ToBase64String(...);
}
Теперь я хочу, функция дешифрования как
String Decrypt(String cypher)
{
TextReader reader = new StringReader(cypher);
byte[] buffer = new byte[ cypher.Length ];
for(int i = 0; i < cypher.Length; ++i)
{
buffer[ i ] = (byte) reader.Read();
}
FromBase64Transform transformer = new FromBase64Transform();
MemoryStream raw = new MemoryStream
(
transformer.TransformFinalBlock(buffer, 0, buffer.Length)
);
...
}
Есть ли способ использовать FromBase64Transform непосредственно с CryptoStream (как следует из документации .NET), вместо вручную преобразовать строку в байты, затем вручную декодировать байты и, наконец, дешифровать декодированные байты?
На самом деле, поток памяти может быть инициализирован непосредственно с помощью байтового массива, возвращаемого Преобразовать в этом примере. Это позволяет избежать вызовов на запись и поиск. – 2008-10-11 01:26:04