Как пользоваться
- Введите или вставьте данные. Чтобы хешировать сырые байты вроде
616263, выберите «Hex-байты». - Выберите BLAKE2b или BLAKE2s и длину дайджеста в байтах: 64 и 32 — полные размеры, 32 байта BLAKE2b — распространённый «BLAKE2b-256».
- При желании введите ключ, чтобы получить хеш с ключом (MAC).
- Скопируйте результат в hex или Base64.
Как это работает
BLAKE2 (RFC 7693) делит вход на блоки — 128 байт у BLAKE2b, 64 у BLAKE2s — и вмешивает каждый в состояние из 8 слов за 12 или 10 раундов функции G. Начальное состояние — фиксированные константы, сложенные по XOR с блоком параметров: длиной дайджеста, длиной ключа, fanout и depth. Последний блок помечается флагом, а дайджест — первые n байт итогового состояния в порядке little-endian.
Пример
Тестовая строка RFC 7693 abc даёт:
- BLAKE2b, 64 байта:
ba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923 - BLAKE2s, 32 байта:
508c5e8c327c14e2e1a72ba34eeb452f37458b209ed63a294d999b4c86675982 - BLAKE2b, 32 байта:
bddd813c634239723171ef3fee98579b94964e3bb1cb3e427262c8c068d52319
Строка над результатом: «Входных байт: 3; размер дайджеста в байтах: 64, в битах: 512».
Советы
hashlib.blake2b(data, digest_size=32, key=k)в Python и командаb2sumиспользуют то же определение — удобно для сверки.b2sumпо умолчанию выводит BLAKE2b-512;b2sum -l 256даёт 32-байтовый вариант.- Ключи держите в секрете и делайте случайными: хеш с ключом надёжен ровно настолько, насколько ключ.