J
JSM
Hi,
I am just trying to port an existing simple encryption routine to C#. this
routine simply adds/substracts 10 ascii characters to each character in a
text file (except quotes). The routine for decrypting the file works fine
however when I encrypt the file, several characters are corrupted. when I
looked into it they are always extended ascii characters (eg "x" which is
ascii character 120 gets translated to ascii character 130 which is part of
the extended ascii range of characters). I am assuming this has something to
do with the Encoding which I used to read/write the text files but I just
can't seem to get it to work. I have tried specifying all different types of
encoding (Unicode, Ascii, UTF7/8 without success).
I can't change the encryption method because this needs to work with
existing installations of my application.
Below are the two routines. Any ideas ? I thought this would be a very
simple task but alas I was wrong!
Cheers,
John
--------------------------------------
public void DecryptFile(string SourceFile,string DestFile)
{
string line;
StreamReader sr=new StreamReader(SourceFile,Encoding.Default);
StreamWriter sw=new StreamWriter(DestFile,false,Encoding.Default);
while ((line=sr.ReadLine())!=null)
{
string newline="";
for (int x=0;x<line.Length;x++)
{
if ((line.Substring(x,1)==qte) ||
(line.Substring(x,1)==Convert.ToChar(44).ToString()))
newline +=line.Substring(x,1);
else
{
newline +=
Convert.ToChar((int)Encoding.Default.GetBytes(line.Substring(x,1))[0]-10).To
String();
}
}
sw.WriteLine(newline);
}
sr.Close();
sw.Close();
}
public void EncryptFile(string SourceFile,string DestFile)
{
string line;
StreamReader sr=new StreamReader(SourceFile,Encoding.Default);
StreamWriter sw=new StreamWriter(DestFile,false, Encoding.Default);
while ((line=sr.ReadLine())!=null)
{
string newline="";
for (int x=0;x<line.Length;x++)
{
if ((line.Substring(x,1)==qte) ||
(line.Substring(x,1)==Convert.ToChar(44).ToString()))
newline +=line.Substring(x,1);
else
{
newline +=
Convert.ToChar((int)Encoding.Default.GetBytes(line.Substring(x,1))[0]+10).To
String();
}
}
sw.WriteLine(newline);
}
sr.Close();
sw.Close();
}
I am just trying to port an existing simple encryption routine to C#. this
routine simply adds/substracts 10 ascii characters to each character in a
text file (except quotes). The routine for decrypting the file works fine
however when I encrypt the file, several characters are corrupted. when I
looked into it they are always extended ascii characters (eg "x" which is
ascii character 120 gets translated to ascii character 130 which is part of
the extended ascii range of characters). I am assuming this has something to
do with the Encoding which I used to read/write the text files but I just
can't seem to get it to work. I have tried specifying all different types of
encoding (Unicode, Ascii, UTF7/8 without success).
I can't change the encryption method because this needs to work with
existing installations of my application.
Below are the two routines. Any ideas ? I thought this would be a very
simple task but alas I was wrong!
Cheers,
John
--------------------------------------
public void DecryptFile(string SourceFile,string DestFile)
{
string line;
StreamReader sr=new StreamReader(SourceFile,Encoding.Default);
StreamWriter sw=new StreamWriter(DestFile,false,Encoding.Default);
while ((line=sr.ReadLine())!=null)
{
string newline="";
for (int x=0;x<line.Length;x++)
{
if ((line.Substring(x,1)==qte) ||
(line.Substring(x,1)==Convert.ToChar(44).ToString()))
newline +=line.Substring(x,1);
else
{
newline +=
Convert.ToChar((int)Encoding.Default.GetBytes(line.Substring(x,1))[0]-10).To
String();
}
}
sw.WriteLine(newline);
}
sr.Close();
sw.Close();
}
public void EncryptFile(string SourceFile,string DestFile)
{
string line;
StreamReader sr=new StreamReader(SourceFile,Encoding.Default);
StreamWriter sw=new StreamWriter(DestFile,false, Encoding.Default);
while ((line=sr.ReadLine())!=null)
{
string newline="";
for (int x=0;x<line.Length;x++)
{
if ((line.Substring(x,1)==qte) ||
(line.Substring(x,1)==Convert.ToChar(44).ToString()))
newline +=line.Substring(x,1);
else
{
newline +=
Convert.ToChar((int)Encoding.Default.GetBytes(line.Substring(x,1))[0]+10).To
String();
}
}
sw.WriteLine(newline);
}
sr.Close();
sw.Close();
}