Loading...
crypt('строка', 'соль');
Как сюда CRYPT_BLOWFISH прикрутить ?
Почитал официальную документацию как всегда ничего не понял
________
посл. ред. 21.07.2023 в 22:42; всего 2 раз(а); by SNEG
В доке указано, что тип шифрования определяется по соли
========
CRYPT_BLOWFISH - Blowfish-шифрование со следующей солью: "$2a$", "$2x$" или "$2y$", весовой параметр из двух цифр, "$" и 22 цифры из алфавита "./0-9A-Za-z". Использование других символов в соли повлечёт за собой возврат пустой строки. Весовой параметр из двух цифр является двоичным логарифмом счётчика итераций нижележащего хеширующего алгоритма, основанного на Blowfish, и должен быть в диапазоне 04-31, значения вне данного диапазона вызовут отказ crypt(). Хеши "$2x$" потенциально слабые; Хэши "$2a$" совместимы и смягчают эту слабость. Для новых хэшей следует использовать "$2y$".
Mobiaaa (21 июля 2023, в 22:48)
В доке указано, что тип шифрования определяется по соли
========
CRYPT_BLOWFISH - Blowfish-шифрование со следующей солью: "$2a$", "$2x$" или "$2y$", весовой параметр из двух цифр, "$" и 22 цифры из алфавита "./0-9A-Za-z". Использование других символов в соли повлечёт за собой возврат пустой строки. Весовой параметр из двух цифр является двоичным логарифмом счётчика итераций нижележащего хеширующего алгоритма, основанного на Blowfish, и должен быть в диапазоне 04-31, значения вне данного диапазона вызовут отказ crypt(). Хеши "$2x$" потенциально слабые; Хэши "$2a$" совместимы и смягчают эту слабость. Для новых хэшей следует использовать "$2y$".
,
$salt = '';
crypt('тест', '$2y$'.$salt);
от 4 до 31 символ длина соли может быть ?
Так работает ?)
________
посл. ред. 21.07.2023 в 23:14; всего 2 раз(а); by SNEG
echo crypt('string', '$2y$15$'.time()).;

Почему ошибка *0 ?
________
посл. ред. 22.07.2023 в 01:53; всего 2 раз(а); by SNEG
php
   <?php // Генерируем соль для CRYPT_BLOWFISH function generate_blowfish_salt($cost = 10) {     $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./';     $salt = sprintf('$2a$%02d$', $cost);      for ($i = 0; $i < 22; $i++) {         $salt .= $characters[mt_rand(0, 63)];     }      return $salt; }  // строка для хэширования $string = 'password123';  // Генерируем соль $salt = generate_blowfish_salt();  // Хэшируем строку с помощью CRYPT_BLOWFISH $hashed_string = crypt($string, $salt);  // Выводим результат echo "Строка: " . $string . "<br>"; echo "Соль: " . $salt . "<br>"; echo "Хэш: " . $hashed_string . "<br>"; ?>   
SNEG ,
KING_SysTEM , С этим я уже разобрался что соль должна быть 22 символа , hash_equals как применить к $string ?
SNEG , Мне кажется Вы велосипед строите
Если всё это для хранения паролей, то в php уже есть встроенные функции password_hash password_verify и соль автоматически генерируется
Они делают абсолютно тоже самое (по сути это алиас к функции crypt) НО встроенные функции php работают быстрее, чем то, что Вы сами сейчас создаёте ибо встроенные функции - это по сути функции написанные на языке С
SNEG , сообщение 7

Изображение

------
86242_IMG_6435.png (900.9 Kb)
Скачиваний: 92
Mobiaaa , это не для пароля , я заметил разницу скорости работы
________
посл. ред. 22.07.2023 в 13:25; всего 1 раз(а); by SNEG
php
   // Исходная строка, которую необходимо хэшировать $string = "my_secret_password";  // Создаем хэш от исходной строки $hashedString = password_hash($string, PASSWORD_BCRYPT);  // В данном примере $hashedString представляет хэш, который должны сохранить в базе данных  // Теперь предположим, что у нас есть вторая версия $string, которую нужно сравнить с исходным хэшем $secondString = "my_secret_password";  // Сравниваем хэши без уязвимости по времени if (hash_equals($hashedString, password_hash($secondString, PASSWORD_BCRYPT))) {     echo "Хэши совпадают."; } else {     echo "Хэши не совпадают."; }   
SNEG ,
Онлайн: 6
Время:
Gen. 0.1425
(c) Bym.Guru 2010-2026