Все ваши строки имеют префикс, который при запуске через base64_decode
приводит к символу 0xfe
и символу 0x00
с дополнительными - изменяющимися - символами после 0x00. Поскольку стандартная крипта останавливается на символе 0x00
, все ваши вызовы крипт только шифруют символ 0xfe
.
Вы можете проверить это, просто позвонив по номеру
echo crypt("\376", '$2a$04$AnySaltHere')."<br>\n";
, который даст тот же результат.
Я предполагаю, что вы использовали base64_decode
по ошибке, имея в виду на самом деле позвонить base64_encode
.
Редактировать: Как указывает Роман, строка
"/gBQyoK71jVY/J7QuBNJuFdxyf2eTBCs42chkx6ZvpJYszpzg==="
будет на самом деле - несмотря на тот же префикс - полностью зашифрован. Это связано с тем, что эта строка на самом деле является недопустимой base64 и base64_decode возвращает false. В результате строка crypt'ится с тем же хешем, что и пустая строка.