powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать правильный хеш из строки?
23 сообщений из 23, страница 1 из 1
Как сделать правильный хеш из строки?
    #40113661
Samantata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня строка 128 нулей и едениц.

вот калькулятор. cryptii.com
мне ее с помощью JAVA нужно перевести вот таким образом как на картинке. и получить выход как текстовую строку
Именно так, а не просто как текст зашифровать.
подскажите пожалуйста как это сделать?
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113665
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Samantata,
Нули и единицы это представление чего? Текста?
Цель - свернуть текст в фиксированную длину хеш?
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113666
Samantata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нули и еденицы это такой текст. Именно в таком виде приходит String="00000000001111 и т.д......

мне его надо преобразовать именно как на картинке и получить на выходе String. тот текст что справа. Сплошняком, разбивать на части пробелами не надо. Больше ничего не нужно. Только это.
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113668
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Samantata,
Не люблю велосипеды.
На входе обычный многословный текст. На выходе фиксированная длина хеш.
хеш = sha256(txt)
Есть библиотечные.
Это надо?
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113670
Samantata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Samantata,
Не люблю велосипеды.
На входе обычный многословный текст. На выходе фиксированная длина хеш.
хеш = sha256(txt)
Есть библиотечные.
Это надо?

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


текст вот:"00000000000000011111011111111111000000000000000111110111111111110000000000000001111101111111111100000000000000011111011111111111"
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113671
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Samantata,
Разбить на две задачи
- конвертация в текст
- применить хеш либу
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113676
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Samantata,

https://dev20.ru/bin-text
Сделать текстом
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113679
Samantata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

спасибо, но это неверный подход. этот набор нулей и едениц никогда небыл буквами. Мне просто его надо преобразовать как на картинке. обязательно с помощью JAVA.
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113689
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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"
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113702
Samantata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на выходе тоже нужны именно нолики с еденичками. не надо никаких букв.

пыталась вот так. но оно неверно работает

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);
}
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113703
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как ты увидела что неверно?
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113707
Samantata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вход :
noliki="0000000000000001111101111111111100000000000000011111 011111111111000000000000000111110111111111110000000000000001 1111011111111111";

оно на выходе дает

-11101111010011......

а должно быть

00011001....


на калькуляторе выше проверила
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113710
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Samantata,

Сделайте ВЕРНЫЙ пример хеширования Мама мыла раму.
А потом засуните свой биты.
Работайте!
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113713
Samantata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если вы не поняли вопрос- не надо на меня орать. Просто не пишите тут больше.
никаких мам с рамами тут нет. Входящая строка это набор битов в текстовом виде. Она никогда небыла никаким ВЕРНЫМ хешированием ничего. Она такая как есть.
И ее надо преобразовать по заданному алгоритму.
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113715
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Мама мыла раму", внезапно - тоже набор битов.
Зависит, конечно, от кодировки, ну так и слова от порядка байт зависят.
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113716
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Samantata,
У вас туго с логикой.
Вы научитесь правильно работать sha256.
Умеете?
Если нет то мой совет именно для вас.
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113717
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
"Мама мыла раму", внезапно - тоже набор битов.
Зависит, конечно, от кодировки, ну так и слова от порядка байт зависят.
+1.
Но она этого не понимает.
Зато советчиков посылает. Женщины, они такие))
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113728
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Samantata
вход :
noliki="0000000000000001111101111111111100000000000000011111 011111111111000000000000000111110111111111110000000000000001 1111011111111111";

оно на выходе дает

-11101111010011......

а должно быть

00011001....


на калькуляторе выше проверила

Я не буду давать готовых решений. Это не интересно. В этой задаче есть договоренности которые скрыты под капотом.
Например - где у нас старшие биты и где младшие. Казалось-бы пустяк. Любой обыватель знает что старшие слева.
Это подсказывает бухгалтерия например. Но я не уверен. Некоторые классы BitSet например разворачивают
это наоборот. И иногда целые числа WORD/DWORD хранят старший и младший байты в перевёрнутом порядке.
Это Little And Big Endian Mistery. Мистика короче. Из за этого БД оракл теряет бинарную совместимость например
между разными Intel архитектурами. И Java и С++ в этом смысле имеют разные взгляды на сериализацию байтов
в вашинном слове.

Это просто - мысли на подумать. Я сам не знаю в чем там ошибка. Но нужно брать дебаггер и смотреть каждый шаг.

Код: java
1.
byte [] hash = digest.digest(data);



Вот эта часть кода верная. У нас к ней нет претензий. Надо искать что было до и после.
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113748
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Верно.
Тут работы то пшик в вопросе.
Например для гост 34.11 в РФ хеш функция Стрибог.
Есть в вики образец для ПУСТОЙ СТРОКИ на входе.
Есть образцы и другие СТРОК.
Проверяем. Работает?
Кидаем туда ваши байты.
Представим что подписываем экзешник.
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113749
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лидирующие нули тоже надо проверить. Вы-же используете не массив хекс-чисел а зачем-то
целое число.

Код: java
1.
new BigInteger(noliki, 2)
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113751
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В телекомах например телефонный номер (вызывающи и вызвываемый) всегда хранится как строка.
Хотя мы номер называем номером но например 009 и 09 это разные строки хотя математически
это одинаковые числа.
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113756
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Лидирующие нули тоже надо проверить. Вы-же используете не массив хекс-чисел а зачем-то
целое число.
Код: java
1.
new BigInteger(noliki, 2)


Это на 99% причина всех проблем. BigInteger отбрасывает лидирующие нули до хеширования и при выводе ответа
...
Рейтинг: 0 / 0
Как сделать правильный хеш из строки?
    #40113779
Samantata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SpringMan
mayton
Лидирующие нули тоже надо проверить. Вы-же используете не массив хекс-чисел а зачем-то
целое число.
Код: java
1.
new BigInteger(noliki, 2)


Это на 99% причина всех проблем. BigInteger отбрасывает лидирующие нули до хеширования и при выводе ответа


благодарю :) . наконец-то кто-то реально соображающий отписался. Спасибо. Попробую через хекс.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать правильный хеш из строки?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]