Erlang Equivalent of C# Hash

Joakim G. <>
Thu Dec 22 23:39:05 CET 2005


and yes

To compare the digests you have to do something like this on
the Erlang side:

     Context = erlang:md5_init(),
     NewContext = erlang:md5_update(Context, String),
     base64:str_2_base64(binary_to_list(erlang:md5_final(NewContext)))

/Jocke

PS http://www.sics.se/~joe/bluetail/eol/base64.erl DS

Joakim G. wrote:
> Jing Ding wrote:
> 
>> Hi there,
>> I previously asked about how to do MD5. And I got answers.
>> Thanks for your help. But the binary result is not the same as the 
>> string generated from C# :
>> ------------------------------------------------------
>> byte[] a = md5Hash.ComputeHash(AE.GetBytes(UserID + value));
>> PasswordHash = Convert.ToBase64String(a);
>> ---------------------------------------------------
>> Anyone else happen to came across this? Thanks.
> 
> 
> Do like this in C#:
> 
> ==
> 
>     byte[] buffer = System.Text.Encoding.Default.GetBytes(String);
>     System.Security.Cryptography.MD5CryptoServiceProvider Check;
>     Check = new System.Security.Cryptography.MD5CryptoServiceProvider();
>     byte[] Hash = Check.ComputeHash(buffer);
>     string HashString = "";
>     foreach (byte a in Hash) {
>         if (a < 16) {
>             HashString += "0" + a.ToString("X");
>         } else {
>             HashString += a.ToString("X");
>         }
>     }
>     return HashString.ToLower();
> 
> ==
> 
> and it works with Erlang's md5 engine and Perl's CPAN
> md5_base64 (in Digest::MD5::Perl) out of the box.
> 
> If you like a pragmatic answer. This is it. :-)
> 
> Cheers
> /Jocke


-- 
tail-f - Caps lock is nowhere and everything is under control.



More information about the erlang-questions mailing list