Re: Writing extended ascii characters to text file.

From: JSM (jsm_at_spam.pacific.net.au)
Date: 01/19/05


Date: Thu, 20 Jan 2005 07:13:15 +1000

Thanks for your reply Dimitry.

I am still relatively new to C# - would you have an example which
demonstrates what you had said?

Cheers,

John

"Dmitriy Lapshin [C# / .NET MVP]" <x-code@no-spam-please.hotpop.com> wrote
in message news:OEry6Ai$EHA.2540@TK2MSFTNGP09.phx.gbl...
> Hi JSM,
>
> First of all, remember that all strings in .NET are internally Unicode
> strings, so in order to get real ASCII codes you should use the GetBytes
> method of an Encoding instance configured for the ASCII encoding (as far
as
> I remember there is a static instance accessible as Encoding.Ascii). Now
> that you have the bytes with the ASCII codes, you do the encryption and
> again, you've got bytes, not characters. Therefore, it seems natural to
> write out the resultant bytes in a binary mode where the issue of
character
> encoding simply is out of the picture.
>
> --
> Sincerely,
> Dmitriy Lapshin [C# / .NET MVP]
> Bring the power of unit testing to the VS .NET IDE today!
> http://www.x-unity.net/teststudio.aspx
>
> "JSM" <jsm@spam.pacific.net.au> wrote in message
> news:eVpZJRh$EHA.1400@TK2MSFTNGP11.phx.gbl...
> > 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();
> > }
> >
> >
>



Relevant Pages

  • RE: XP password and encryption
    ... Windows NT 4 (I can't remember if it was part of the SP2 upgrade to ... (effectively limited to 14 characters), ... a one-way (non-reversible encryption) of variable size. ... > We provide Ethical Hacking, Advanced Ethical Hacking, Intrusion ...
    (Security-Basics)
  • Re: Storing input into a character array
    ... char enc; ... slots in the array enc until enc is filled up. ... If you don't want newline characters in your array, ... encryption, it does correctly output the 4 characters of the first row ...
    (comp.lang.c)
  • Re: Safe password?
    ... > I use an encryption program that uses AES-256 as its encryption ... > characters for this encryption type? ... The keyspace, expecially in the second case, would be far from the one ... collision resistent hash) to a random key of the length you desire; ...
    (sci.crypt)
  • Re: encryption
    ... advantages over 64-bit encryption if one chooses a password which is 8 ... characters or less? ... One of my pass phrases has more than 15 characters, ... and kept in a Keychain-like system. ...
    (comp.sys.mac.system)
  • Re: Simple program: who can write a shorter code?
    ... (defun foo (string) ... The only sure way to get ASCII would be to write your own ASCII-CODE ... function to translate characters into their ASCII codes. ...
    (comp.lang.lisp)