as3 md5

GHOST

Power Member
Boas a todos,

Estou com um problema em recrear uma password gerada em C#, num projecto online que esta ao publico quando um utilizador se regista a password passa pela função:
private static string ToMD5Hash(string inputString)
{
using (MD5 md5 = MD5.Create())
{
byte[] data = Encoding.Unicode.GetBytes(inputString);
byte[] hash = md5.ComputeHash(data);

return Convert.ToBase64String(hash);
}
}
O meu problema é que estou a trabalhar em uma versão offline que irá ter a possibilidade de fazer sync com a versão online e não estou a conseguir a mesma password em as3(adobe air).
Por exampo a password 1234 depois de passar pela função do C# fica DwN1hMmef9T0+MWVUPj1Bw==.
A minha funç~co de teste em as3 é assim:

private function encode():void
{
var ba:ByteArray = new ByteArray();
ba.writeMultiByte("1234","unicode");
var str:String = MD5.hash(ba.toString());

var ba2:ByteArray = new ByteArray();
ba2.writeMultiByte(str.toString(),"unicode");

var encoder:Base64Encoder = new Base64Encoder();
encoder.encodeUTFBytes(ba2.toString());
trace(encoder.toString());
}

Quando executo ba.writeMultiByte("1234","unicode"); tenho o mesmo bytearray que no c# mas apartir dai já não, não consigo perceber se o meu problema é no ba.toString() ou no MD5.hash para o MD5 estou a usar a lib as3corelib


Agradeço desde já qualquer ajuda.
Alex
 
Back
Topo