PHP mysql 5.7.x old_password 문제 대응 함수
페이지 정보
본문
mysql 5.7.x 버전에서 old_password 가 제거되었습니다.
그에 대응하는 함수입니다.
<?php
function sql_old_password($value) {
if ($value == '')
return '';
$nr = 1345345333;
$add = 7;
$nr2 = 0x12345671;
foreach(str_split($value) as $c) {
if ($c == ' ' or $c == "\t")
continue;
$tmp = ord($c);
$nr ^= ((($nr & 63) + $add) * $tmp) + (($nr << 8) & 0xFFFFFFFF);
$nr2 += (($nr2 << 8) & 0xFFFFFFFF) ^ $nr;
$add += $tmp;
}
if ($nr2 > PHP_INT_MAX)
$nr2 += PHP_INT_MAX + 1;
$bit = (1 << 31) -1;
return sprintf("%08lx%08lx", $nr & $bit, $nr2 & $bit);
}
?>
자료출처
https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=81926
그에 대응하는 함수입니다.
<?php
function sql_old_password($value) {
if ($value == '')
return '';
$nr = 1345345333;
$add = 7;
$nr2 = 0x12345671;
foreach(str_split($value) as $c) {
if ($c == ' ' or $c == "\t")
continue;
$tmp = ord($c);
$nr ^= ((($nr & 63) + $add) * $tmp) + (($nr << 8) & 0xFFFFFFFF);
$nr2 += (($nr2 << 8) & 0xFFFFFFFF) ^ $nr;
$add += $tmp;
}
if ($nr2 > PHP_INT_MAX)
$nr2 += PHP_INT_MAX + 1;
$bit = (1 << 31) -1;
return sprintf("%08lx%08lx", $nr & $bit, $nr2 & $bit);
}
?>
자료출처
https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=81926
댓글목록
등록된 댓글이 없습니다.