Одна минутная деталь, которая не упоминается на странице Yahoo, это то, что вы должны добавить «& amp;» к секрету потребителя при создании зашифрованной строки HMA-SHA1. Из-за этого строка HMAC-SHA1 была не тем, с чем сравнивал сервер Yahoo.
Я совершил свои изменения в том же репо, упомянутом в вопросе, если вам нужна версия Swift / Objective-C.
Существует использование для хеш-функций в JavaScript, например, проверяя сторону клиента капчей (путем сравнения хеша на сессии к вычисленному хешу от входа). Очевидно, использование ограничено, так как это выполняет почти исключительно сторону клиента (и Вы не можете доверять клиентскому входу), но потенциал там.
Можно зашифровать данные с помощью JavaScript; однако я не уверен в преимуществах. Поскольку, если Вы используете, скажем, bas64, необходимо отправить ключ шифрования клиенту, и если бы кто-то может прервать зашифрованные данные он/, она, вероятно, смогла бы прервать ключ шифрования также.
Вы никогда не должны использовать это для замены сертификатов SSL.
Я не вижу, почему криптографическая функция не могла быть реализована с помощью JavaScript.
Однако.. Криптография является интенсивно использующим ресурсы процессом.
По сравнению со скомпилированным кодом JavaScript является slooooooow.
Я вижу по крайней мере одно использование: Если Вы отправляете клиентские зашифрованные данные, то дешифрование его в JavaScript на основе ключа/пароля, который пользователь вводит локально. Это предполагает общий ключ или известный пароль, что Вы раньше первоначально шифровали данные в сервере. Кроме того, эти функции часто используются злонамеренным и/или запутываемым JavaScript.
Никогда Вы не можете использовать JavaScript в качестве безопасной платформы для передачи безопасных данных...
Но возможно сделать md5 или другой тип шифрования клиентскими, который дает Вам довольно безопасный способ проверки, Вы могли протестировать серверную сторону!-)
Ответ зависит от того, что Вы хотите сделать.
Если Вы хотите использовать криптографию на стороне клиента, офлайновые, персистентные веб-приложения затем да. Так, например, сделайте Вы хотите зашифровать все данные, которые хранятся во встроенной базе данных с помощью спецификаций HTML 5 'globalStorage ()'. Затем используйте JavaScript crypto, потому что вероятность - то, что у Вас привычка есть соединение для обработки всего crypto на стороне сервера.
Если не используют проверенные на практике методы