PHP HASH do C# – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP HASH do C# – .NET – Fórum – Programujte.comPHP HASH do C# – .NET – Fórum – Programujte.com

 

Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
15. 8. 2013   #1
-
0
-

Dobrý den,

dělám licenční server a nyní pracuji na setup programu, co bude kontrolovat výstup serveru a jeho. Jenže udělat HASH v C# je velice náročný proces... :) Jak má tedy správně vypadat toto:

function NTLMHash($input)
{
	$MD4Hash = bin2hex(mhash(mhash_sha512, iconv('UTF-8', 'UTF-16LE', $input)));

	$NTLMHash = strtoupper($MD4Hash);

	return($NTLMHash);
}

v C#?

Děkuji.

Nahlásit jako SPAM
IP: 78.136.150.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
15. 8. 2013   #2
-
0
-

Testovací sériové číslo:

24BA37025F6F9DB2CCF82FF2F522D55933CDE560

Oba výstupy se musí shodovat - jakož i všechny ostatní... :)

Nahlásit jako SPAM
IP: 78.136.150.–
Evzen+2
Návštěvník
Nahlásit jako SPAM
IP: 193.179.183.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
16. 8. 2013   #4
-
0
-

Děláš si srandu? Já znám.NET dokonale - samozřejmě, že se plácám v tomto namespace. Jenže ono to není tak jednoduché. Kolabuje mi to již na konverzi do UTF16... Tedy místo číslic a písmen to ukazuje paznaky...

Nahlásit jako SPAM
IP: 78.136.150.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
16. 8. 2013   #5
-
0
-

Console.WriteLine(Encoding.Unicode.GetString(SHA512.Create().ComputeHash(Encoding.Convert(Encoding.ASCII, Encoding.GetEncoding("UTF-16"), Encoding.ASCII.GetBytes(args[0])))));

Nemá smysl hashovat dál, když toto nepracuje jak má...

Nahlásit jako SPAM
IP: 78.136.150.–
Tom
~ Anonymní uživatel
434 příspěvků
16. 8. 2013   #6
-
0
-

#4 Matěj Andrle
"Jenže udělat HASH v C# je velice náročný proces..."

"Děláš si srandu? Já znám.NET dokonale - "

ehm :)

Nahlásit jako SPAM
IP: 89.102.12.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
16. 8. 2013   #7
-
0
-

Nedělám HASH každý den - představ si to. Znát .NET - tedy jednotlivá namespace je jedna věc... Nejsem webový programátor - jenže to nikdo nechápe - a všude mě zaměstnávají na webových projektech. Já jsem na OS/Desktop. Baví mě algoritmy AI, ale nějaké weby mi lezou krkem...

Nahlásit jako SPAM
IP: 78.136.150.–
Martin
~ Anonymní uživatel
1602 příspěvků
16. 8. 2013   #8
-
0
-

#2 Matěj Andrle
Jaký byl vstup ze kterého jsi tenhle hash získal?

Nahlásit jako SPAM
IP: 80.188.27.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
16. 8. 2013   #9
-
0
-

Upřímě netuším ani z čeho HASH čerpá - jestli z byte[], či z int[] pořadových čísel, nebo z hashmapy. Atd. Já netuším, jak HASH vypadá - pročež ho neumím udělat. A ani mě to nezajímá - nemůžu přeci umět všechno... Zkusil jsem to sám - očividně neúspěšně... Slušně jsem požádal o radu a výsledkem je, že mě poníží, když mi pošle namespace - jako bych byl úplně vygumovaný...

Nahlásit jako SPAM
IP: 78.136.150.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
16. 8. 2013   #10
-
0
-

#8 Martin
Poslal jsem algoritmus a pod tím je i zdroj.

Nahlásit jako SPAM
IP: 78.136.150.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
16. 8. 2013   #11
-
0
-

Nezáleží na zdroji. Jde tu o to, aby algoritmus PHP se shodoval s tím C#...

Nahlásit jako SPAM
IP: 78.136.150.–
Evzen+2
Návštěvník
16. 8. 2013   #12
-
0
-

#9 Matěj Andrle

Děláš si srandu? Já znám.NET dokonale

Slušně jsem požádal o radu a výsledkem je, že mě poníží, když mi pošle namespace - jako bych byl úplně vygumovaný...

Promiň, že jsem se tě snažil ukázat správný směr, já úplně zapomněl, že ty všechno umíš nejlíp. Já hlupák zapomněl, že ty píšeš na fórum jen proto, aby ses pochlubil, co novýho řešíš a jak, a vlastně ani radu nechceš, protože nad tebe není.

Evžen

Nahlásit jako SPAM
IP: 193.179.183.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
16. 8. 2013   #13
-
0
-

Jestli to nebylo mířeno urážlivě, tak se omlouvám...

Nahlásit jako SPAM
IP: 78.136.150.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
17. 8. 2013   #14
-
0
-

Už jsem to z části pochopil. Mé řešení je správné - jen C# neumí konvertovat string do UTF16 pomocí Encoding. Toto řešení funguje pro PHP kód upravený - bez konverze do UTF16:

byte[] data = SHA512.Create().ComputeHash(Encoding.ASCII.GetBytes(args[0]));
string result = "";

for(int index = 0; index < data.Length; index++)
	result += data[index].ToString("X2");

Console.WriteLine(result);

char[] buffer = new char[512];

Nemám rád, když mě pokoří takováto stupidita. Jak tedy správně konvertovat string (netuší, zda je v ASCII, či Unicode - prostě string...) do UTF16?

Děkuji.

Nahlásit jako SPAM
IP: 78.136.150.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
19. 8. 2013   #15
-
0
-

Nuže vstuktu je problém v C# Nedokáže správně konvertovat do UTF-16. Jelikož UTF8 z C# se shoduje s PHP. Ale UTF-16 se neshoduje s žádným možným kódováním...

Nahlásit jako SPAM
IP: 78.136.150.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 32 hostů

Podobná vlákna

Hash ... — založil koudis

Hash — založil Mirek Braho

Vytvoření SQL(MD5) hash — založil Hunty

Hash tabulka - Modulo dělení — založil delp10

Pouzitie viacerych hash funkcii — založil Tocimanko

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý