Какие типы являются хэш-значениями и могу ли я использовать операторы сравнения? - PullRequest
0 голосов
/ 22 января 2012

Я разрабатываю расширение для Firefox, и я хотел бы знать:

  1. После того, как я получил хеш-значение из строки, какой тип данных это значение?
  2. Могу ли я использовать операторы сравнения с ними?

Итак, я хотел бы сравнить два хеш-значения и посмотреть, например, одно из них. выше, чем другие. Точно так же, как сравнение, если 5 >= 4. Это возможно? Обрабатывать хеш-значения как целые числа?

Ответы [ 2 ]

1 голос
/ 23 января 2012

В дополнении Firefox вы должны использовать nsICryptoHash . Например, если вы хотите хэшировать строку с использованием алгоритма MD5, вы должны использовать следующую функцию:

function toMD5(str)
{
  // Convert string to an array of bytes
  var array = Array.prototype.slice.call(str);

  // Create MD5 hash
  var hashEngine = Components.classes["@mozilla.org/security/hash;1"]
                             .createInstance(Components.interfaces.nsICryptoHash);
  hashEngine.init(hashEngine.MD5);
  hashEngine.update(array, array.length);
  return hashEngine.finish(true);
}

alert(toMD5("test"));  // Displays: 8dP/hEMpdzKGLfIdxOVyYg==

Обратите внимание, что при этом возвращается хеш-значение в кодировке base64. Используйте finish(false), чтобы получить необработанное (двоичное) значение хеш-функции.

1 голос
/ 22 января 2012

MD5 - один из самых популярных алгоритмов хеширования.Он дает шестнадцатеричное число из строки, которую можно использовать для сравнения с разумной безопасностью.Для JavaScript вы можете попробовать crypto-js , но вы можете легко найти множество других реализаций в сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...