Ich führe einige Tests im Vergleich der sha1 Algorithmus in Javascript implementiert - von http://pajhome.org.uk/crypt/ - mit seiner Implementierung in C#.SHA1 base64 Algorithmus in Javascript und C#
Verwendung von C#, um den Hash für { 'Methode': 'people.get'} zu bekommen verwende ich diese Aussage:
Convert.ToBase64String(new System.Security.Cryptography.SHA1CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes("{'method':'people.get'}")));
die mich Qy95a0ShZqhbNdt6IF8qNf72jX0=
In Javascript gibt erhalte ich fast die gleich: Qy95a0ShZqhbNdt6IF8qNf72jX0
die Anweisung mit:
b64_sha1("{'method':'people.get'}");
im JavaScript-Fall wird der Hash nicht mit einem Gleichzeichen (=) enden.
Kann dieser Unterschied Probleme bei der Authentifizierung gegenüber einem Server verursachen?
In meinem Fall, wie viele von Ihnen vielleicht wissen, geht der Satz, den ich den Hash berechnen, in den HTTP-Body und der Server wird es überprüfen.
Dank
Ok, basierend auf dieser Information sah ich jetzt, dass das = Zeichen, wie Sie darauf hingewiesen, wird zum Auffüllen der Nachricht verwendet. Danke – Andres
@Andres: Sie können Zeile 15 der 'sha1.js' Datei von pajhome.org.uk aktualisieren, um' = 'als Füllzeichen zu verwenden. – LukeH
Ja, während ich meine eigene Antwort geschrieben habe, hast du diese Bemerkung geschrieben. Danke :) – Andres