bucha2004
Гуру форума
- Регистрация
- 9 Фев 2007
- Сообщения
- 309
- Реакции
- 79
- Автор темы
- #1
PHP:
function code_password($password) {
while (strlen($password) < 12) {
$password .= "-";
}
$key = md5("V7qM91t0mtlkcI1UD");
$res = base64_encode(encrypt($password, $key));
return $res;
}
function encode_password($password) {
$key = md5("V7qM91t0mtlkcI1UD");
$res = decrypt(base64_decode($password), $key);
$res = trim(str_replace("-", " ", $res));
return $res;
}
function encrypt($data, $secret) {
$cipher = new blowfish;
$encrypt = '';
for ($i = 0; $i < strlen($data); $i+=8) {
$block = substr($data, $i, 8);
if (strlen($block) < 8) {
$block = full_str_pad($block, 8, "", 1);
}
$encrypt .= $cipher->encryptBlock($block, $secret);
}
return $encrypt;
}
function decrypt($data, $secret) {
$cipher = new blowfish;
$decrypt = '';
for ($i = 0; $i < strlen($data); $i+=8) {
$decrypt .= $cipher->decryptBlock(substr($data, $i, 8), $secret);
}
return trim($decrypt);
}
function full_str_pad($input, $pad_length, $pad_string = '', $pad_type = 0) {
$str = '';
$length = $pad_length - strlen($input);
if ($length > 0) { // str_repeat doesn't like negatives
if ($pad_type == STR_PAD_RIGHT) { // STR_PAD_RIGHT == 1
$str = $input.str_repeat($pad_string, $length);
} elseif ($pad_type == STR_PAD_BOTH) { // STR_PAD_BOTH == 2
$str = str_repeat($pad_string, floor($length/2));
$str .= $input;
$str .= str_repeat($pad_string, ceil($length/2));
} else { // defaults to STR_PAD_LEFT == 0
$str = str_repeat($pad_string, $length).$input;
}
} else { // if $length is negative or zero we don't need to do anything
$str = $input;
}
return $str;
}
Может ли кто то написать функцию для создания пароля по этому алгоритму, чтоб можно было вставить ее в PMA в соответствующее поле?
Просто забыл пароль от админки, а восстановить не получается