Подтвердить что ты не робот

Существуют ли какие-либо односторонние хэширующие функции, доступные в родном JavaScript?

Я хотел бы иметь возможность создавать уникальные токены * для пользователей на основе хешированной строки. Я знаю, что мог бы, например, использовать библиотеку md5(), но поскольку цель не является криптографической, мне было интересно, есть ли что-нибудь, что я мог бы использовать "из коробки". Существуют ли какие-либо односторонние хэширующие функции, доступные в родном JavaScript?

* Я понимаю, что это не будет строго уникальным. Я в порядке с небольшой вероятностью столкновения хеширования.

4b9b3361

Ответ 1

Не знаю, что я знаю.

однако вы всегда можете использовать реализацию JavaScript MD5

http://pajhome.org.uk/crypt/md5/

Ответ 2

В JavaScript не существует ничего. Вы можете использовать что-то вроде Murmurhash. Здесь реализована реализация JavaScript: https://github.com/garycourt/murmurhash-js. Я не использовал его, хотя не могу ручаться за него.

Ответ 3

В JavaScript нет встроенного хеширования, но есть много библиотек.

Я рекомендую крипто-js: https://code.google.com/p/crypto-js/

Например, чтобы использовать SHA1, вы просто:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/sha1.js"></script>
<script>
    var hash = CryptoJS.SHA1("Message");
</script>

Ответ 4

На горизонте это может быть возможно с помощью экспериментального API веб-криптографического интерфейса

https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API

https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto

Конечно, на момент написания этой книги нереально использовать в производственной среде и, вероятно, будет движущейся целью. Однако, знаете ли 5 ​​лет?