ini_set('display_errors', 0);
как бы намекает.<?php
// Генерирует соль
function generateSalt() {
$SALT_LENGTH = 16;
$CHARS = array_merge(range('0', '9'), range('a', 'f'));
$maxCharIndex = count($CHARS) - 1;
$salt = '';
for ($i = 0; $i < $SALT_LENGTH; ++$i) {
$salt .= $CHARS[mt_rand(0, $maxCharIndex)];
}
return $salt;
}
// Получает солёный хеш пароля
function gen_hash($password) {
$salt = generateSalt();
return '$SHA$' . $salt . '$' . hash('sha256', hash('sha256', $password) . $salt);
}
// Проверяет соответсвие хеша паролю
function isValidPassword($password, $hash) {
$parts = explode('$', $hash);
return count($parts) === 4 && $parts[3] === hash('sha256', hash('sha256', $password) . $parts[2]);
}
echo "\n\n";
echo gen_hash('my_password');
echo "\n\n";
if ( isValidPassword('my_password', '$SHA$c9e23493a9d459a4$c594c6ba03e6ad61a77fff6d8fca296f7a3256aa407ab4a1d01e31c90128ef74') )
{
echo "Пароль соответствует хешу\n";
}
else
{
echo "Пароль не соответствует хешу\n";
}
?>
root@srv-test:/tmp/test# /opt/php73/bin/php hash.php
$SHA$801397ec1750266b$2aefb205b4be73fb67dfe069145a549df83f8fa77a357c5300f898b06f26c63b
Пароль соответствует хешу
nc -zv smtp.example.com 25
nc -zv smtp.example.com 465
nc -zv smtp.example.com 587
ports
. Слева указывается порт в хостовой системе, справа указывается порт приложения. Так как приложение в контейнере изолировано, оно может слушать любой порт, даже тот который занят в хостовой системе. там нестабильные ветки только, стабильной нет.
как вам идея: собрать самостоятельно wine из исходников?
ssh-add -L