CRC-64 для хаха SHA256
hiii, у меня вопрос, если я вычислю crc для хэша sha256, чтобы получить символ с 64 битами, получу ли я столкновение? это безопасно для обратной функции? Thnx
1 ответ
IANAC.
Я не очень понимаю, что вы имеете в виду под "Будет ли я иметь конфликт" - 64 бита, конечно, никогда не будут представлять 256 бит, так что да, очень многие из ваших возможных хэшей sha256 могут свалиться в один и тот же 64-битный CRC.
Если вы просто хотите получить более короткое значение для своего хэша, я бы рекомендовал вместо этого сворачивать, например, путем кроссировки каждого последовательного байта в вашем хэше друг с другом. Или путем xor: первая половина вашей 256-битной строки со второй половиной для получения 128-битного значения, а затем xor: первая половина этого результата со второй половиной результата снова для получения 64-битного значения.
Это 64-битное значение, конечно же, никогда не сможет представить все возможные значения 256-битного хэша, но будет невозможно начать с этого значения и вычислить коллизию для вашего исходного 256-битного хэша.