170 похожих чатов

Вот ф-ция хеширования, может быть в ней какой-то косяк? требуется

алгоритм "Стрибог"

import gostcrypto # https://pypi.org/project/gostcrypto/

def get_hash(s: str) -> str:
encoded = s.encode('cp1251')
hash_obj = gostcrypto.gosthash.new('streebog256', data=encoded)
return hash_obj.hexdigest()

26 ответов

43 просмотра

cp1251 косяк

Сергей- Автор вопроса
Сергей
в смысле?

В прямом. Эта кодировка поддерживает очень небольшой набор символов

Сергей- Автор вопроса
Tishka17
В прямом. Эта кодировка поддерживает очень небольш...

но там и есть только русские буквы и цифры

Драконить кодировки на каждый шорох — это конечно офигенно эффективно. И выбор кодировки тоже внушает, прямо повеяло госконторой. Это у заказчика шиза или твоё творчество?

Сергей- Автор вопроса
evle
Драконить кодировки на каждый шорох — это конечно ...

драконить в смысле менять? мб правда эффективнее будет заранее у всего файла поменять? а так в ТЗ указано что Стрибог работает именно с такой..

Сергей
драконить в смысле менять? мб правда эффективнее б...

А чтение твоего файла с n строк скок занимает?

Сергей- Автор вопроса
Konstantin Peskov
А чтение твоего файла с n строк скок занимает?

не считал, но я говорю, при замене стрибога на тождественный get_hash тоже оч быстро работает, так что ты был прав

Сергей
драконить в смысле менять? мб правда эффективнее б...

Стрибог работает с потоком байтов (которые ты и получаешь). В каком виде там будет текст — вопрос отдельный. Ты что-то к ТЗ от себя пытаешься сочинять. Исходный файл в какой кодировке?

Сергей- Автор вопроса
Tishka17
Стрибог работает с байтами же, не?

то есть переводить никуда не нужно, если там рус буквы то ничего не поменяется при вызове encode?

Сергей
то есть переводить никуда не нужно, если там рус б...

Э... Давай ты сходишь почитать о том, что такое кодировки и как с ними работать. А то наблюдается чистый лист в ответственном месте...

Сергей- Автор вопроса

да, понял что я не так говорю. я же читаю строку из csv, а нужно передать стрибогу байты. так что в вызове encode не может быть узкого места, этот вызов неизбежен, верно?

Сергей
да, понял что я не так говорю. я же читаю строку и...

Может. Если тебе нужны будут байты, ты можешь забить на преобразования в строку и читать в бинарном режиме. Единственное, не помню, как csv к этому отнесётся. Ну и плюс смена кодировки с utf-8 на cp1251 (фиг пойми, обоснованная ли). В любом случае, есть варианты.

Сергей- Автор вопроса
evle
Может. Если тебе нужны будут байты, ты можешь заби...

на самом деле чтение из файла это тестовое, в основном будет читаться из БД. в этом случае вызов s.encode('cp1251') ведь неизбежен, верно?

Сергей- Автор вопроса

почему?)

Сергей
почему?)

Средства шифрования сертифицируется. Рано или поздно заказчик либо сам об этом вспомнит, либо ему намекнут.

Сергей- Автор вопроса

не очень понял мысль, ну ладно.. я о том есть ли более простой вызов для строки. похоже что нет. тогда единств способ ускорить видимо правда распараллеливание (если будут требовать)

Сергей- Автор вопроса
Tishka17
Лучше делать по тз тогда

в тз указан Стрибог и что он работает с 1251. в этом его вызове ведь нет явных косяков с учетом этих требований? https://t.me/ru_python/2167263

Сергей
в тз указан Стрибог и что он работает с 1251. в эт...

Сложно искать косяки когда мы видим 3 строки текста

Сергей- Автор вопроса
Tishka17
Где указано?

"в виде хэш-кода, вычисляемого в соответствии с межгосударственным стандартом ГОСТ 34.11-2018 «Информационная технология. Криптографическая защита информации. Функция хэширования». Длина хэш кода – 256 бит. Кодировка информации, подлежащей хэшированию – Windows-1251"

Сергей
не очень понял мысль, ну ладно.. я о том есть ли б...

ГОСТовское шифрование как правило требуется всяким связанным с госструктурами заказчиками. При этом есть нормативка, говорящая о том, что используемые в таких случаях средства шифрования должны быть сертифицированы. Иначе они потом проверку не пройдут. Может, конечно, и глаза в итоге закроют, но если нормально проверять будут — нет. Та библиотека, которую ты показал — не сертифицирована, поэтому весьма вероятно, что придётся менять на какой-нибудь криптопро или ещё что подобное. Их несколько и в основном они на базе openssl.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта