phpbar.de logo

Mailinglisten-Archive

[php] MD5 mit UFT-8 Encoding

[php] MD5 mit UFT-8 Encoding

Sebastian Mendel lists at sebastianmendel.de
Mon Jul 4 12:26:06 CEST 2005


Norbert Siebert wrote:

> Hallo Sebastian,
> 
>> lass dir doch in deinem C#-Client mal den UTF8-Codierten String ausgeben
>> (vor der MD5-Kodierung) und vergleich ihn mit dem von PHP erstellten
>> UFT8-Kodierten String - oder poste die beiden dann mal hier.
> 
> Die habe ich mir ausgeben lassen. Allerdings ist das in C# etwas
> schwieriger, da
> der String vor dem generieren des Schlüssel nur in als byte array vorliegt.
> Bevor sie in dieses byte array geschrieben werden, sind ist gleich.

hast du es schon mal mit recode_string() oder iconv() probiert?


> Stelle ich im C# Client die Kodierung auf ASCII um, dann erhalte ich
> identische
> Schlüssel. Die liegt halt an der Kodierung der Zeichen.
> 
> Kann du dir die Ausgabe von folgendem vielleicht erklären?
> 
> <?php
> echo str_pad("String 'test' nur mit MD5 Kodiert:",40)
>             . md5("test") . "\n";
> echo str_pad("String 'test' mit MD5 und UTF-8 kodiert:",40)
>             . md5(utf8_encode("test")) . "\n";
> echo str_pad("String 'täst' nur mit MD5 kodiert:",40)
>             . md5("täst") . "\n";
> echo str_pad("String 'täst' mit MD5 und UTF-8 kodiert:",40)
>             . md5(utf8_encode("täst")) . "\n";
> ?>
> 
> Ausgabe:
> String 'test' nur mit MD5 Kodiert:      098f6bcd4621d373cade4e832627b4f6
> String 'test' mit MD5 und UTF-8 kodiert:098f6bcd4621d373cade4e832627b4f6
> String 'täst' nur mit MD5 kodiert:      82d29ac2844d27fc2722ad97c9d2c064
> String 'täst' mit MD5 und UTF-8 kodiert:109623cd486dccc1c2a2601b1144305f

ja, weil nur das 'ä' UTF8-kodiert wird, die anderen Zeichen sind
innerhalb der allgemein gültigen Zeichen, diese müssen nicht kodiert werden


p.s. schreib bitte an die Liste

-- 
Sebastian Mendel

www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet

php::bar PHP Wiki   -   Listenarchive