J'ai une chaîne .NET qui est la représentation codée Base64 d'un tableau d'octets cryptés. Il est produit comme celui-ci:Utilisation de FromBase64Transform avec CryptoStream?
String Encrypt(String message)
{
CryptoStream cryptostream = ...
StreamWriter stream = new StreamWriter(cryptostream);
...
return Convert.ToBase64String(...);
}
Maintenant, je veux une fonction de décryptage comme
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)
);
...
}
Y at-il un moyen d'utiliser FromBase64Transform directement avec CryptoStream (comme la documentation .NET suggère), au lieu de convertir manuellement la chaîne en octets, puis décoder manuellement les octets et enfin décrypter les octets décodés?
En fait, peut être initialisé le flux de mémoire directement à l'aide du tableau d'octets renvoyé par Convert dans cet exemple. Cela évite les appels à Écrire et Chercher. –
@Jerome, merci, J'ai modifié l'exemple en fonction de votre conseil. En le relisant, je ne sais même pas pourquoi je l'ai fait de façon compliquée. – GvS