|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
у меня строка 128 нулей и едениц. вот калькулятор. cryptii.com мне ее с помощью JAVA нужно перевести вот таким образом как на картинке. и получить выход как текстовую строку Именно так, а не просто как текст зашифровать. подскажите пожалуйста как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 10:21 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
Samantata, Нули и единицы это представление чего? Текста? Цель - свернуть текст в фиксированную длину хеш? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 10:27 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
нули и еденицы это такой текст. Именно в таком виде приходит String="00000000001111 и т.д...... мне его надо преобразовать именно как на картинке и получить на выходе String. тот текст что справа. Сплошняком, разбивать на части пробелами не надо. Больше ничего не нужно. Только это. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 10:29 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
Samantata, Не люблю велосипеды. На входе обычный многословный текст. На выходе фиксированная длина хеш. хеш = sha256(txt) Есть библиотечные. Это надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 10:35 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Samantata, Не люблю велосипеды. На входе обычный многословный текст. На выходе фиксированная длина хеш. хеш = sha256(txt) Есть библиотечные. Это надо? это не работает. На картинке хешфункция принимает не текст а именно байты или биты я не очень понимаю. Если хешировать это как текст то ответ будет другой он не годится. текст вот:"00000000000000011111011111111111000000000000000111110111111111110000000000000001111101111111111100000000000000011111011111111111" ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 10:37 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
Samantata, Разбить на две задачи - конвертация в текст - применить хеш либу ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 10:37 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 10:42 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, спасибо, но это неверный подход. этот набор нулей и едениц никогда небыл буквами. Мне просто его надо преобразовать как на картинке. обязательно с помощью JAVA. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 10:53 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
Samantata, функции наподобие md5, SHA1 работают абсолютно одинаково и однозначно. Но эти функции работают с битовыми последовательностями. Таков дизайн. Вообще вся криптография так работает. Поэтому у тебя только две задачи. Как преобразовать пользовательский input в битовую последовательность (можно байтовую). Как ты знаешь байты - это те-же биты кратные восьми. И как опубликовать результат. Нужно сделать обратную операцию. Перевернуть биты в строковое представление чтобы человек глазами увидел результат. Потому что на экране мы всегда видим символы. Вот примеры использования. https://www.geeksforgeeks.org/sha-1-hash-in-java/ Еще я-бы взял encodeHex https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/binary/Hex.html#encodeHex-byte:A- и обратная операция https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/binary/Hex.html#decodeHex-char:A- И hex-буквы можно легко преобразовать в биты. Эти системы - кратные. Например "0"=> "0000", "F"=> "1111" ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 11:29 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
на выходе тоже нужны именно нолики с еденичками. не надо никаких букв. пыталась вот так. но оно неверно работает private String generator(String noliki) throws NoSuchAlgorithmException { MessageDigest digest = MessageDigest.getInstance("SHA-256"); byte [] data = new BigInteger(noliki, 2).toByteArray(); byte [] hash = digest.digest(data); return new BigInteger(hash).toString(2); } ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 12:05 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
А как ты увидела что неверно? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 12:10 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
вход : noliki="0000000000000001111101111111111100000000000000011111 011111111111000000000000000111110111111111110000000000000001 1111011111111111"; оно на выходе дает -11101111010011...... а должно быть 00011001.... на калькуляторе выше проверила ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 12:19 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
Samantata, Сделайте ВЕРНЫЙ пример хеширования Мама мыла раму. А потом засуните свой биты. Работайте! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 12:29 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
если вы не поняли вопрос- не надо на меня орать. Просто не пишите тут больше. никаких мам с рамами тут нет. Входящая строка это набор битов в текстовом виде. Она никогда небыла никаким ВЕРНЫМ хешированием ничего. Она такая как есть. И ее надо преобразовать по заданному алгоритму. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 12:33 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
"Мама мыла раму", внезапно - тоже набор битов. Зависит, конечно, от кодировки, ну так и слова от порядка байт зависят. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 12:36 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
Samantata, У вас туго с логикой. Вы научитесь правильно работать sha256. Умеете? Если нет то мой совет именно для вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 12:36 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov "Мама мыла раму", внезапно - тоже набор битов. Зависит, конечно, от кодировки, ну так и слова от порядка байт зависят. Но она этого не понимает. Зато советчиков посылает. Женщины, они такие)) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 12:37 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
Samantata вход : noliki="0000000000000001111101111111111100000000000000011111 011111111111000000000000000111110111111111110000000000000001 1111011111111111"; оно на выходе дает -11101111010011...... а должно быть 00011001.... на калькуляторе выше проверила Я не буду давать готовых решений. Это не интересно. В этой задаче есть договоренности которые скрыты под капотом. Например - где у нас старшие биты и где младшие. Казалось-бы пустяк. Любой обыватель знает что старшие слева. Это подсказывает бухгалтерия например. Но я не уверен. Некоторые классы BitSet например разворачивают это наоборот. И иногда целые числа WORD/DWORD хранят старший и младший байты в перевёрнутом порядке. Это Little And Big Endian Mistery. Мистика короче. Из за этого БД оракл теряет бинарную совместимость например между разными Intel архитектурами. И Java и С++ в этом смысле имеют разные взгляды на сериализацию байтов в вашинном слове. Это просто - мысли на подумать. Я сам не знаю в чем там ошибка. Но нужно брать дебаггер и смотреть каждый шаг. Код: java 1.
Вот эта часть кода верная. У нас к ней нет претензий. Надо искать что было до и после. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 12:58 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
mayton, Верно. Тут работы то пшик в вопросе. Например для гост 34.11 в РФ хеш функция Стрибог. Есть в вики образец для ПУСТОЙ СТРОКИ на входе. Есть образцы и другие СТРОК. Проверяем. Работает? Кидаем туда ваши байты. Представим что подписываем экзешник. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 13:43 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
Лидирующие нули тоже надо проверить. Вы-же используете не массив хекс-чисел а зачем-то целое число. Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 13:44 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
В телекомах например телефонный номер (вызывающи и вызвываемый) всегда хранится как строка. Хотя мы номер называем номером но например 009 и 09 это разные строки хотя математически это одинаковые числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 13:46 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
mayton Лидирующие нули тоже надо проверить. Вы-же используете не массив хекс-чисел а зачем-то целое число. Код: java 1.
Это на 99% причина всех проблем. BigInteger отбрасывает лидирующие нули до хеширования и при выводе ответа ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 13:56 |
|
Как сделать правильный хеш из строки?
|
|||
---|---|---|---|
#18+
SpringMan mayton Лидирующие нули тоже надо проверить. Вы-же используете не массив хекс-чисел а зачем-то целое число. Код: java 1.
Это на 99% причина всех проблем. BigInteger отбрасывает лидирующие нули до хеширования и при выводе ответа благодарю :) . наконец-то кто-то реально соображающий отписался. Спасибо. Попробую через хекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 14:32 |
|
|
start [/forum/topic.php?fid=59&msg=40113703&tid=2120305]: |
0ms |
get settings: |
11ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
58ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
368ms |
get tp. blocked users: |
0ms |
others: | 2488ms |
total: | 2937ms |
0 / 0 |