Как создать симметричный хэш из двух строк? Я в криптографии плохо разбираюсь, поэтому прошу совета. У меня есть две строки const str1 = "str1" const str2 = "str2" Мне нужно получить один и тот же хэш в не зависимости от порядка предоставления строк. Просто хэш, не шифрование текста с двумя ключами hash(str1, str2) === hash(str2, str1) Какой алгоритм в crypto для этого подойдет?
Для создания симметричного хэша из двух строк вам подойдет алгоритм HMAC (Hash-based Message Authentication Code) в Node.js. Пример использования:
const crypto = require('crypto'); const str1 = "str1"; const str2 = "str2"; const hash1 = crypto.createHmac('sha256', 'secret').update(str1 + str2).digest('hex'); const hash2 = crypto.createHmac('sha256', 'secret').update(str2 + str1).digest('hex'); console.log(hash1); // Выведет один и тот же хэш console.log(hash2); // Выведет один и тот же хэш
Обратите внимание, что в примере выше я использовал алгоритм sha256 и секретный ключ 'secret'. Вы можете выбрать другой алгоритм или ключ в зависимости от ваших требований.
Для создания симметричного хэша из двух строк вам подойдет алгоритм HMAC (Hash-based Message Authentication Code) в Node.js. Пример использования:
const crypto = require('crypto');const str1 = "str1";
const str2 = "str2";
const hash1 = crypto.createHmac('sha256', 'secret').update(str1 + str2).digest('hex');
const hash2 = crypto.createHmac('sha256', 'secret').update(str2 + str1).digest('hex');
console.log(hash1); // Выведет один и тот же хэш
console.log(hash2); // Выведет один и тот же хэш
Обратите внимание, что в примере выше я использовал алгоритм sha256 и секретный ключ 'secret'. Вы можете выбрать другой алгоритм или ключ в зависимости от ваших требований.