Флейм
GameDev.ru / Флейм / Форум / Глупый вопрос про sha256

Глупый вопрос про sha256

ud1Постоялецwww14 июня 201821:45#0
Хочу найти хеш от "1", делаю так:
echo "1" | openssl dgst -sha256 -binary | hd
00000000  43 55 a4 6b 19 d3 48 dc  2f 57 c0 46 f8 ef 63 d4  |CU.k..H./W.F..c.|                                                                                                                                          
00000010  53 8e bb 93 60 00 f3 c9  ee 95 4a 27 46 0d d8 65  |S...`.....J'F..e|                                                                                                                                          
00000020                                       

второй способ

echo "1" | sha256sum 
4355a46b19d348dc2f57c046f8ef63d4538ebb936000f3c9ee954a27460dd865  -  

А теперь первый попавшийся сайт https://passwordsgenerator.net/sha256-hash-generator/
вбиваю туда 1, получаю

6B86B273FF34FCE19D6B804EFF5A3F5747ADA4EAA22F1D49C01E52DDB7875B4B

второй попавшийся сайт https://www.xorbin.com/tools/sha256-hash-calculator
вбиваю 1, получаю

6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b

А теперь код на java:

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;

public class Main
{
  public static void main(String[] args) throws Exception
  {
    MessageDigest digest = MessageDigest.getInstance("SHA-256");
    byte[] hash = digest.digest("1".getBytes(StandardCharsets.UTF_8));
    System.out.println(javax.xml.bind.DatatypeConverter.printHexBinary(hash));
  }
}

Выдает

6B86B273FF34FCE19D6B804EFF5A3F5747ADA4EAA22F1D49C01E52DDB7875B4B

Что не так?

Правка: 14 июня 2018 21:53

lookidПостоялецwww14 июня 201821:52#1
The echo commands are adding a trailing newline to your string.
ud1Постоялецwww14 июня 201821:54#2
lookid
Точно, спасибо
ud1Постоялецwww14 июня 201821:59#3
Я пробовал делать
cat 1.txt | sha256sum

где в файле записана эта единичка, и результат был тот же. Файл редактировал в kate. И теперь внимательно посмотрел, и обнаружил, что kate при закрытии файла автоматом добавляет пустую строку в конец файла! Открыл файл, стер пустую строку, нажал Ctrl-S, с виду все норм, закрыл файл, открыл снова, а там опять пустая строка.

Попробовал редакторы vi и nano, те тоже автоматом добавляют в конец пустую строку. Сговорились что-ли все

Правка: 14 июня 2018 22:04

clcПостоялецwww14 июня 201822:17#4
ud1, не, это в линукс такая рекомендация. Не помню с чем связано.

echo -n  "1" | sha256sum

Правка: 14 июня 2018 22:18

ДезанизаторПостоялецwww15 июня 20181:43#5
Удали строку в редакторе Far Manager :)
=A=L=X=Постоялецwww15 июня 20182:29#6
GCC предупреждение выдает если последний символ исходника не перенос строки.
DelfigamerПостоялецwww15 июня 20182:59#7
clc
> ud1, не, это в линукс такая рекомендация. Не помню с чем связано.
Какое-то соглашение, наверно, ещё со времён терминалов пришло.
Я знаю, что в старом стандарте С++, не заканчивать файл пустой строкой - это UB, потому что, во-первых, старый компилятор может её не увидеть, во-вторых, из-за этого ломался #include. В С++11 этот трешак пофиксили - теперь, если файл не заканчивается переводом строки, компилятор вставляет свой собственный \n.
По идее, у текстового редактора должна быть настройка в конфигах - дописывать ли пустую строку, или не надо.

Правка: 15 июня 2018 3:00

/ Форум / Флейм / Программирование

2001—2018 © GameDev.ru — Разработка игр