Moin!
ich habe ein Problem mit der sha1 Verschlüsselung :(
Test-String:
28423|78017||||AT|199|EUR|DEMO Bestellung||||||||degh065cDIESES Ergebnis würde ich brauchen:
88ef9c430a2ceb7411f8c14b9a2a1a9fbb38d4d0 # korrekter Code
...
hab's auch mit sha1_hex() versucht - so bekomme ich zwar einen Code, aber einen "falschen"
6f6d99cdff98c0cd181bb84e02b59f5d93445031Das selbe Ergebnis habe ich online und offline.
Was mache ich falsch?
SHA1 ist, genau wie alle anderen Hash-Algorithmen, extrem empfindlich gegenüber minimalsten Abweichungen. Du brauchst nur ein einzelnes Bit falsch zu haben, schon weicht dein Ergebnis-Hash komplett von der Erwartung ab.
Deshalb hilft dir da auch kein Raten: Ermittle exakt, wie im Original aus dem String der Hash gebildet wird, und vollziehe diesen Arbeitsgang 100% nach. Also im Prinzip Copy&Paste des Codes. Oder halt Einbindung der erzeugenden Subroutine. Alles andere führt fast zwangsläufig zu Problemen, wie du ja siehst.
Und da ist dir auch mit einer noch so guten Beschreibung deines Problems nicht zu helfen. Wenn das Ergebnis abweicht, ist festzustellen, dass du nicht dasselbe in den SHA1-Algorithmus reinsteckst, wie das Original, oder dass du bei der Anwendung von SHA1 irgendwas anders machst, als das Original. Ohne Kenntnis des Vorgangs beim Original kann man leider auch nur raten - und solange rumprobieren, bis es zufällig irgendwann klappt, ist nicht zielführend, da kann man u.U. sehr lange rumprobieren.
Fehlt da irgendwo noch eine UFT-8 Codierung?
Dein Teststring enthält keine Zeichen, die außerhalb von 7-Bit-ASCII liegen. Also verhalten sich ISO-8859-1, Windows-1252 und UTF-8 absolut identisch. Daran wird es also vermutlich eher nicht liegen.
- Sven Rautenberg