데이터베이스/MYSQL
FUNCTION XXX.old_password does not exist
죠부니
2023. 12. 13. 15:42
반응형
https://mytory.net/archives/3120
[MySQL] PASSWORD() 함수의 결과값이 달라졌을 때 (MySQL 4.1부터 달라짐)
MySQL 버전이 4.1대로 넘어오면서 MySQL 함수인 PASSWORD()의 암호화 방법이 달라졌다고 한다. 이전의 PASSWORD() 함수는 16자리 결과물(해시값)을 내놓는 데 반해 새로운 PASSWORD() 함수는 41자리 결과물
mytory.net
없어졌다 함수가
function old_password($password) {
$nr=0x50305735;
$nr2=0x12345671;
$add=7;
$charArr = preg_split("//", $password);
foreach ($charArr as $char) {
if (($char == '') || ($char == ' ') || ($char == '\t')) continue;
$charVal = ord($char);
$nr ^= ((($nr & 63) + $add) * $charVal) + ($nr << 8);
$nr2 += ($nr2 << 8) ^ $nr;
$add += $charVal;
}
return sprintf("%08x%08x", ($nr & 0x7fffffff), ($nr2 & 0x7fffffff));
}
----
password
SELECT CONCAT('*', UPPER(SHA1(UNHEX(SHA1('1234')))))
반응형