Я выполняю некоторые тесты, сравнивающие алгоритм sha1, реализованный в javascript - получен от http://pajhome.org.uk/crypt/ - с его реализацией на C#.SHA1 base64 алгоритм в javascript и C#
Использование C#, чтобы получить хэш { 'метод': ''} people.get Я использую это заявление:
Convert.ToBase64String(new System.Security.Cryptography.SHA1CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes("{'method':'people.get'}")));
, который дает мне Qy95a0ShZqhbNdt6IF8qNf72jX0=
В JavaScript я почти то же самое: Qy95a0ShZqhbNdt6IF8qNf72jX0
с помощью оператора:
b64_sha1("{'method':'people.get'}");
в яваскрипте случае хэш не заканчивается равенство (=) знаком.
Может ли это различие вызвать у меня проблемы при аутентификации на сервере?
В моем случае, как многие из вас могут знать, предложение, которое я считаю хэшем, входит в тело http, и сервер проверяет его.
Благодаря
Хорошо, на основании этой информации я увидел теперь, что знак =, как вы указали, используется для заполнения сообщения. Спасибо – Andres
@Andres: Вы можете обновить строку 15 файла 'sha1.js' с pajhome.org.uk, чтобы использовать' = 'в качестве символа заполнения. – LukeH
Да, когда я писал свой собственный ответ, вы писали это замечание. Спасибо :) – Andres