Как расхешировать sha512? Кто-нибудь поможет мне расшифровать этот код?
У меня есть этот код:
password_hash(base64_encode( hash('sha512','e4cefc2b2d9fd250c8e526770c2841b4bd9e1f7509ebbd13f997151153c2c86a69a2f28d0f4e9b23e9f2fc31f0103b5a4fae2ad9f1706845ea9b817517943aa2', true) ), PASSWORD_DEFAULT );
Сохраненное значение базы данных:
$password = e4cefc2b2d9fd250c8e526770c2841b4bd9e1f7509ebbd13f997151153c2c86a69a2f28d0f4e9b23e9f2fc31f0103b5a4fae2ad9f1706845ea9b817517943aa2;
password_hash()
, вы проверяете, соответствуют ли они известному значению с помощьюpassword_verify()
. - person Alex Howansky   schedule 19.04.2018sha512
илиbase64_encode()
результатом. Bcrypt (текущее значение по умолчанию дляpassword_hash()
) имеет ограничение на пароль в 72 символа, и все, что после этого, игнорируется.sha512
создает хэш из 128 шестнадцатеричных символов, а когда выbase64_encode
делаете это, он имеет длину 172 символа, то есть более 50% усекается. Если вы должны сначала предварительно хешировать его, используйтеsha256
и не кодируйте base64_encode, потому что все, что он делает, это удлиняет строку и совершенно бессмысленно в этом контексте. - person Mike   schedule 19.04.2018