O
osmarjunior
I have two methods Encode(String) and Decode(String). But the Decode()
returns a different string. If I encode "123456", for example, and try
to decode the result, it returns a different value. Can anyone help to
find the error? Here's the code:
public static String Encode(String value)
{
// Create a new Rijndael object to generate a key and
initialization vector (IV).
Rijndael RijndaelAlg = Rijndael.Create();
try
{
Byte[] data = Encoding.ASCII.GetBytes(value);
MemoryStream memStream = new MemoryStream();
CryptoStream encStream = new CryptoStream(memStream,
RijndaelAlg.CreateEncryptor(RijndaelAlg.Key,
RijndaelAlg.IV),
CryptoStreamMode.Write);
encStream.Write(data, 0, data.Length);
encStream.FlushFinalBlock();
//calculate the length of the encrypted data
Byte[] result = new Byte[memStream.Position];
memStream.Position = 0;
memStream.Read(result, 0, result.Length);
encStream.Close();
return Encoding.ASCII.GetString(result);
}
catch (Exception e)
{
Messages.Error("Ocorreu um erro na Criptografia: " +
e.Message);
return value;
}
}
public static String Decode(String value)
{
Byte[] data = Encoding.ASCII.GetBytes(value);
MemoryStream memStream = new MemoryStream(data.Length);
// Create a new Rijndael object to generate a key and
initialization vector (IV).
Rijndael RijndaelAlg = Rijndael.Create();
CryptoStream encStream = new CryptoStream(memStream,
RijndaelAlg.CreateEncryptor(RijndaelAlg.Key,
RijndaelAlg.IV),
CryptoStreamMode.Read);
memStream.Write(data, 0, data.Length);
memStream.Position = 0;
String strResult = new StreamReader(encStream).ReadToEnd();
encStream.Close();
Byte[] result = Encoding.ASCII.GetBytes(strResult);
return Encoding.ASCII.GetString(result);
}
Regards.
Junior.
returns a different string. If I encode "123456", for example, and try
to decode the result, it returns a different value. Can anyone help to
find the error? Here's the code:
public static String Encode(String value)
{
// Create a new Rijndael object to generate a key and
initialization vector (IV).
Rijndael RijndaelAlg = Rijndael.Create();
try
{
Byte[] data = Encoding.ASCII.GetBytes(value);
MemoryStream memStream = new MemoryStream();
CryptoStream encStream = new CryptoStream(memStream,
RijndaelAlg.CreateEncryptor(RijndaelAlg.Key,
RijndaelAlg.IV),
CryptoStreamMode.Write);
encStream.Write(data, 0, data.Length);
encStream.FlushFinalBlock();
//calculate the length of the encrypted data
Byte[] result = new Byte[memStream.Position];
memStream.Position = 0;
memStream.Read(result, 0, result.Length);
encStream.Close();
return Encoding.ASCII.GetString(result);
}
catch (Exception e)
{
Messages.Error("Ocorreu um erro na Criptografia: " +
e.Message);
return value;
}
}
public static String Decode(String value)
{
Byte[] data = Encoding.ASCII.GetBytes(value);
MemoryStream memStream = new MemoryStream(data.Length);
// Create a new Rijndael object to generate a key and
initialization vector (IV).
Rijndael RijndaelAlg = Rijndael.Create();
CryptoStream encStream = new CryptoStream(memStream,
RijndaelAlg.CreateEncryptor(RijndaelAlg.Key,
RijndaelAlg.IV),
CryptoStreamMode.Read);
memStream.Write(data, 0, data.Length);
memStream.Position = 0;
String strResult = new StreamReader(encStream).ReadToEnd();
encStream.Close();
Byte[] result = Encoding.ASCII.GetBytes(strResult);
return Encoding.ASCII.GetString(result);
}
Regards.
Junior.