Каталог решений - SHA-1 хеш на клиенте

SHA-1 хеш на клиенте

SHA-1 хеш на клиенте

В наличии

Самописная реализация вычисления хеша SHA-1 на клиенте с помощью побитовых операций.

Категория:

Описание

SHA-1 (Secure Hash Algorithm, версия 1) — алгоритм криптографического хеширования, описанный в RFC 3174.

Если говорить простыми словами, то хеш — это цифровой отпечаток стандартизированной длины от входных данных любого размера.

Хеш SHA-1 имеет размер 160 бит, или 20 байт, или 40 шестнадцатеричных цифр. На сегодняшний день считается устаревшим и в серьёзной криптографии уже не используется, но для простых нужд его вполне хватает.

В платформе 1С 8.3 уже реализованы некоторые хеш-функции, в том числе и SHA-1. Но по непонятным причинам работает это только на сервере. (Разработчики платформы, сделайте наконец-таки хеши на клиенте!!!) В некоторых кейсах хеш нужно вычислять именно на клиенте, в связи с чем мной был реализован велосипед алгоритм с применением побитовых операций (доступно с версии 8.3.11). На данном портале уже есть похожие публикации, но всё равно выложу это со своим видением в 2К25-м )

 

 

Алгоритм был подсмотрен на wiki. Относительно простой, но нужно внимательно следить за битами )

 

 

Повторять википедию не буду, поэтому сразу к выводам.

На малых данных работает достаточно быстро для практического применения: скорость ~100 хешей в секунду для коротких строк входных данных размером 36 байт. Для больших бинарников, конечно, это не практично, т.к. хеш будет рассчитываться несколько секунд.

Корректность алгоритма протестирована на многочисленных данных в параллели со встроенным серверным SHA-1.

 

 

Протестировано на платформе 8.3.23, но будет работать на любой, начиная с 8.3.11. Независимо от БСП.

Для чего это понадобилось мне: для генерации одноразовых паролей для двухфакторной аутентификации (из прошлой моей публикации) на клиенте.

Код открыт, можете использовать в своих проектах.

Ещё больше разного в моём профиле или на гитхабе.

has been added to your cart:
Оформление заказа