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

22.01.25

Разработка - Математика и алгоритмы

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
SHA-1 хеш на клиенте
.epf 7,80Kb ver:1.0
1
1 Скачать (1 SM) Купить за 1 850 руб.

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. Независимо от БСП.

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

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

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

SHA1 SHA Хеш Hash побитовые операции двоичные данные математика алгоритмы

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 1C:Бухгалтерия Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    4945    stopa85    12    

39

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    9950    user1959478    54    

37

Математика и алгоритмы Разное Платформа 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    4789    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    12513    8    SpaceOfMyHead    20    

62

Математика и алгоритмы Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    6039    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

В статье анализируются средства платформы для решения системы линейных уравнений в 1С. Приводятся доводы в пользу некорректной работы встроенных алгоритмов, а значит потенциально некорректного расчета себестоимости в типовых конфигурациях.

23.11.2022    5149    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9403    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. gml 22.01.25 23:06 Сейчас в теме
Разработчики платформы, сделайте наконец-таки хеши на клиенте!!!


И не только MD5, SHA-ххх, но и ГОСТовские (при наличии модуля криптографии, конечно)
2. RailMen 829 28.01.25 18:42 Сейчас в теме
SHA признаны устаревшими.
Лучше реализовать ГОСТ Р 34.11-94 или рекомендованные ФСТЭК, например, Стрибог.
Оставьте свое сообщение