Re: Is there a C# equivalent of the VB.NET asc function?



If you're not having fun doing it (and actually a better reason...) you
probably shouldn't be doing this yourself, as it's weak, and .NET already has
all this stuff done for you.

If it's one way hashing you need (like checking passwords) use MD5
System.Security.Cryptography.MD5

which is pretty easy
byte[] data = new byte[DATA_SIZE];

// This is one implementation of the abstract class MD5.
MD5 md5 = new MD5CryptoServiceProvider();

byte[] result = md5.ComputeHash(data);


If you need proper 2 way encryption use something like RSA
System.Security.Cryptography.RSACryptoServiceProvider

admittedly it's not quite trivial, but the docs are good and there's tons of
examples out there. Plus you wont get screwed if someone decyphers your
"encoding" (it's not really encryption is it, its just encoding).

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1033/cpguide/html/cpconcryptographyoverview.htm

I'm by no means an encryption expert so I can't recommend an encryption
scheme to use, but I would certainly suggest looking at this.

Jim


"Alan Silver" wrote:

> >Yes,
> >
> >' ' == (char) 20
> >
> >and you want ^
> > eg 11110000 ^ 10101010 equals 01011010
>
> Thanks!! I love the simplicity of C#. I just need to get it all in my
> head.
>
> It occurred to me in bed last night that the C# equivalent of Xor was
> probably an operator, not a method of a class. That explains why I
> couldn't find it in the class library. Ho hum.
>
> >Sombody's in the UK writing some sort of license key/password hashing
> >algorithm??!
>
> Not quite that fancy, but close. I have an old VB6/ASP application that
> encrypts some sensitive data before storing it in the database. I'm
> trying to rewrite it bit by bit in ASP.NET and am trying to convert the
> encryption/decryption routines as accurately as possible.
>
> To be honest, the code is quite old and not my best!! I would really
> like to re-engineer the whole thing from scratch, but there's too much
> legacy data around to allow that at the moment. I need to get the new
> system working with the old data as quickly as possible. I have the
> following inelegant and inefficient function ...
>
> Public Function Encode(Key As String, ByVal Str As String) As String
> Dim Tmp As String, RealKey As String, sc As String, kc As String
> Dim l As Integer, i As Integer
> Tmp = StrReverse(Key) ' save the key passed to us
> RealKey = ""
> l = Len(Tmp & Main.RealSeed)
> For i = 1 To l ' build up the full key from the seed and the passed
> key
> RealKey = RealKey & Mid(Tmp, i, 1) & Mid(Main.RealSeed, i, 1)
> Next
> Tmp = "" ' will hold the encoded string
> For i = 1 To Len(Str)
> sc = Asc(Mid(Str, i, 1))
> kc = Asc(Mid(RealKey, i, 1))
> Tmp = Tmp & Chr(sc Xor kc)
> Next
> Encode = Tmp
> End Function
>
> .... which I am trying to rewrite in C#. As you can see, the code is not
> something to be proud of!! I wrote it a long time ago and have learned a
> lot since then.
>
> By the way, if you're trying to make sense of it, Main.RealSeed refers
> to a variable in the Main from of the application that holds a seed for
> the (admittedly basic) encryption routine.
>
> Thanks for the help.
>
> >Jim
> >
> >"Alan Silver" wrote:
> >
> >> >> I'm converting some old VB6 code to use with ASP.NET and have come
> >> >> unstuck with the Asc() function. This was used in the old VB6 code to
> >> >> convert a character to its ASCII numeric equivalent.
> >> >> Is there such a function available in C#? I can see that VB.NET has
> >> >> one, but I couldn't see how to get at it in C#.
> >> >
> >> >char c = 'A';
> >> >int val = (int)x;
> >>
> >> Oh, isn't that clever!!
> >>
> >> Can I convert back as easily? I mean the equivalent of the Chr()
> >> function? I'm sure it's probably as simple as another cast, but my brain
> >> isn't clear enough (1am after a really lousy day's work) to be sure I'm
> >> doing it right!!
> >>
> >> Also (whilst you're being so helpful), is there an equivalent of the Xor
> >> operator? I was using this for some encryption, but couldn't work out
> >> how to do it in C#. The .NET class library is so big that it's hard to
> >> find your way around.
> >>
> >> Thanks very much for the help. Any further help would be greatly
> >> appreciated.
> >>
> >> --
> >> Alan Silver
> >> (anything added below this line is nothing to do with me)
> >>
>
> --
> Alan Silver
> (anything added below this line is nothing to do with me)
>
.



Relevant Pages

  • Re: Is there a C# equivalent of the VB.NET asc function?
    ... I'm by no means an encryption expert so I can't recommend an encryption ... Public Function Encode(Key As String, ByVal Str As String) As String ... Dim Tmp As String, RealKey As String, sc As String, kc As String ... >>"Alan Silver" wrote:>>>>> I'm converting some old VB6 code to use with ASP.NET and have come>>>> unstuck with the Ascfunction. ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Advice wanted for storing passwords in a database
    ... MD5 does not allow a separate 'salt' or 'key' to be input, just the string ... It is customisable in that you can alter the encryption algorithm ...
    (comp.lang.php)
  • Re: Unix Password Encryption Procedure
    ... > I know that most Unix machines either use the DES encryption algorithm ... Your questions about MD5 indicates that you might be using Linux, ... I am curious as to given an encrypted string, ...
    (comp.unix.programmer)
  • Re: what is MD5
    ... What is MD5 its encryption algorithm...? ... am in php Mysql ... I treat it as a black box that takes any string, and converts it to a 32 ...
    (comp.lang.php)
  • C# Equivalent of C++ MD5 Algorith
    ... encrypts it using MD5, and compares it to what was encrypted ... The problem is that the C++ encryption generates 110 ... DWORD error = GetLastError; ... string generatePassword ...
    (microsoft.public.dotnet.languages.csharp)

Loading