<ho****@yahoo.com> wrote:
<snip>
Hmm. I've modified your code appropriately, but I can't get either your
original code or the modified code to fail (encrypting with 1.1 and
decrypting with 2.0). Could you provide some sample data which it fails
with?
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
public class EncryptionManager
{
SymmetricAlgorithm provider;
public EncryptionManager()
{
provider = new TripleDESCryptoServiceProvider();
provider.IV = new byte[8];
byte[] key = new byte[provider.KeySize/8];
for (int i=0; i < key.Length; i++)
{
key[i] = (byte) i;
}
provider.Key = key;
}
public string Encrypt(string toEncrypt)
{
byte[] rawInput = Encoding.UTF8.GetBytes(toEncrypt);
byte[] rawOutput = Encrypt (rawInput);
return Convert.ToBase64String(rawOutput);
}
public string Decrypt(string toDecrypt)
{
byte[] rawInput = Convert.FromBase64String(toDecrypt);
byte[] rawOutput = Decrypt (rawInput);
return Encoding.UTF8.GetString(rawOutput);
}
public byte[] Encrypt (byte[] toEncrypt)
{
return Transform(provider.CreateEncryptor(), toEncrypt);
}
public byte[] Decrypt (byte[] toDecrypt)
{
return Transform(provider.CreateDecryptor(), toDecrypt);
}
byte[] Transform (ICryptoTransform transform, byte[] data)
{
using (MemoryStream memoryStream = new MemoryStream())
{
using (CryptoStream cryptoStream = new CryptoStream
(memoryStream, transform, CryptoStreamMode.Write))
{
cryptoStream.Write(data, 0, data.Length);
cryptoStream.FlushFinalBlock();
}
return memoryStream.ToArray();
}
}
static void Main(string[] args)
{
EncryptionManager manager = new EncryptionManager();
if (args.Length==1)
{
Console.WriteLine (manager.Decrypt(args[0]));
}
else
{
Console.WriteLine (manager.Encrypt ("Test"));
}
}
}
--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog:
http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too