W
weixiang
Hi,
I want to use DES and CryptoStream to serialize a encrypted stream to a file
with a header "CRYPT". And I wrote these code:
To store:
FileStream fileStream = new FileStream(fileName, FileMode.Create,
FileAccess.Write, FileShare.None);
byte[] signture = AE.GetBytes("CRYPT");
fileStream.Write(signture, 0, 5);
ICryptoTransform ct = des.CreateDecryptor(key, iv);
CryptoStream cryptoStream = new CryptoStream(fileStream, ct,
CryptoStreamMode.Write);
IFormatter formatter = new BinaryFormatter();
formatter.Binder = new DataSNBinder();
formatter.Serialize(cryptoStream, MYDATA);
cryptoStream.Flush();
fileStream.Close();
To load:
FileStream fileStream = new FileStream(fileName, FileMode.Open,
FileAccess.Read);
fileStream.Seek(5, SeekOrigin.Begin);
ICryptoTransform ct = des.CreateDecryptor(key, iv);
CryptoStream cryptoStream = new CryptoStream(fileStream, ct,
CryptoStreamMode.Read);
formatter = new BinaryFormatter();
formatter.Binder = new DataSNBinder();
MYDATA = (MYDATA)formatter.Deserialize(cryptoStream);
cryptoStream.Close();
And with that code I can not load the saved file. What's the problem?
And, what's the exact meaning of CryptoStream.Close()? If I replace the
CryptoStream.Flush() with Close(), it will crash. But the encrypted file
size is somewhat smaller than the original data size, is that mean a problem
in my code?
Thank you very much
weixiang
I want to use DES and CryptoStream to serialize a encrypted stream to a file
with a header "CRYPT". And I wrote these code:
To store:
FileStream fileStream = new FileStream(fileName, FileMode.Create,
FileAccess.Write, FileShare.None);
byte[] signture = AE.GetBytes("CRYPT");
fileStream.Write(signture, 0, 5);
ICryptoTransform ct = des.CreateDecryptor(key, iv);
CryptoStream cryptoStream = new CryptoStream(fileStream, ct,
CryptoStreamMode.Write);
IFormatter formatter = new BinaryFormatter();
formatter.Binder = new DataSNBinder();
formatter.Serialize(cryptoStream, MYDATA);
cryptoStream.Flush();
fileStream.Close();
To load:
FileStream fileStream = new FileStream(fileName, FileMode.Open,
FileAccess.Read);
fileStream.Seek(5, SeekOrigin.Begin);
ICryptoTransform ct = des.CreateDecryptor(key, iv);
CryptoStream cryptoStream = new CryptoStream(fileStream, ct,
CryptoStreamMode.Read);
formatter = new BinaryFormatter();
formatter.Binder = new DataSNBinder();
MYDATA = (MYDATA)formatter.Deserialize(cryptoStream);
cryptoStream.Close();
And with that code I can not load the saved file. What's the problem?
And, what's the exact meaning of CryptoStream.Close()? If I replace the
CryptoStream.Flush() with Close(), it will crash. But the encrypted file
size is somewhat smaller than the original data size, is that mean a problem
in my code?
Thank you very much
weixiang