2012-03-09 2 views
3

Я хотел бы сгенерировать SHA1 или подобные хэши, используя только клиентский Javascript. Другими словами, использование Javascript-движков, предоставляемых IE, FF и Webkit. Мне интересно, какие существуют хэш-реализации?Какие алгоритмы хеша поддерживаются современным Javascript?

+3

Существует много. Google - ваш друг. (Пример: http://www.webtoolkit.info/javascript-sha1.html) –

+2

@ user1150525 - Я думаю, что OP ищет реализацию, используя только браузер JS в браузере. Я просто искал то же самое вчера вечером, чтобы избежать зависимости от сторонней библиотеки. –

ответ

5

Я не верю, что в браузере есть какие-либо встроенные функции, но есть некоторые хорошо документированные реализации.

Лучшее, что я нашел это http://code.google.com/p/crypto-js/, который доступен через CDN и поддерживает:

  • MD5
  • SHA-1
  • SHA-256
  • AES
  • DES
  • Rabbit
  • MARC4
  • HMAC
  • HMAC-MD5
  • HMAC-SHA1
  • HMAC-SHA256
  • PBKDF2

Если вопросы безопасности, то использовать алгоритм, который не был сломан (пока) и меньше подвержены к различным формам атаки (wikipedia имеет хороший пробой в нижней части this article).

Основываясь на отсутствии ответов на вопрос this question, похоже, что это не родная функциональность браузера. Хотелось бы, но я видел проблемы, связанные с использованием браузера. Например, если в алгоритме обнаружен недостаток, было бы сложно переместить пользователей на новый алгоритм, пока вы не узнали, что все его браузеры его поддерживают (и они обновились). Если вы управляете алгоритмом хеширования, тогда вы можете развернуть новый скрипт, когда захотите.

3

Я не уверен в реализации встроенных хэш-реализаций, отличных от того, что уже используется для ассоциативных массивов, но вот некоторые примеры реализации с кодом.

ША

MD5 (с некоторыми другими включено)

+0

Я также нашел [версию Mootool] (https://github.com/sixtyseconds/mootools-string-cryptography/blob/master/Source/String.SHA-1.js) и [этот смысл] (https: // gist .github.com/712736). – Xeoncross

Смежные вопросы