SHA1 C# -> C++

20/05/2010 - 21:01 von Jürgen Wehrmaker | Report spam
Hallo NG,

ich nutze in einer CS Quelle dir aus FormsAuthentication die Funktion
string G = HashPasswordForStoringInConfigFile("Geheim", "SHA1");

Nun benötige ich das auch in managed C++ DLL. Meine Funktion s. u.
funktioniert aber nicht wir erwartet...

static System::String^ Get_Hash(array<System::Byte>^ a_bytes)
{
System::String ^l_Str = String::Empty;
// SHA256 ^ shaM = gcnew SHA256Managed;
SHA1 ^ shaM = gcnew SHA1Managed;

array<System::Byte> ^bytestohash = shaM->ComputeHash(a_bytes);

for each (System::Byte b in bytestohash)
{
l_Str += b.ToString();
}

return l_Str;
}

System::String ^G = String::Empty;

//G = Get_Hash(System::Text::Encoding::ASCII->GetBytes("Geheim"));
//G = Get_Hash(System::Text::Encoding::Unicode->GetBytes("Geheim"));
G = Get_Hash(System::Text::Encoding::Default->GetBytes("Geheim"));

bring mir aber einen anderen Hashwert. Wo liegt das Problem?


Danke und Gruß
Jürgen

BTW:
HashPasswordForStoringInConfigFile("", "SHA1");
Get_Hash(System::Text::Encoding::Default->GetBytes(""));
müstte doch laut:
http://www.febooti.com/products/fil...t-vectors/
beide male "da39a3ee5e6b4b0d3255bfef95601890afd80709" ergeben
HashPasswordForStoringInConfigFile = Ja, Get_Hash = Nein
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
20/05/2010 - 22:13 | Warnen spam
Hallo Jürgen,

"Jürgen Wehrmaker" schrieb:

//G = Get_Hash(System::Text::Encoding::ASCII->GetBytes("Geheim")); //G =
Get_Hash(System::Text::Encoding::Unicode->GetBytes("Geheim"));
G = Get_Hash(System::Text::Encoding::Default->GetBytes("Geheim"));

bring mir aber einen anderen Hashwert. Wo liegt das Problem?



schau dir mal die Method im .NET Reflector an.



public static string HashPasswordForStoringInConfigFile(string password, string passwordFormat)
{
...
return MachineKeySection.ByteArrayToHexString(algorithm.ComputeHash(Encoding.UTF8.GetBytes(password)), 0);
}



UTF8 wàre dann wohl passend(er) gewesen :)

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen