PHP Make_MySQL_pass - php로 구현한 MySQL의 old_password함수
페이지 정보
본문
PHP로 구현한 MySQL의 old_password() 함수 입니다.
<?php
/*
제작자이름 : 송택윤
관련사이트 : http://pia.cc
*/
// 문자열을 mysql password함수를 이용하여 암호화 한다.
if (!function_exists("get_password_str"))
{
function get_password_str($pass)
{
// mysql 4.1.0 부터 passowrd 함수의 값이 무작위로 변경되어
// 기존 password 함수와 동일한 알고리즘의 코드로 바뀌었다.
$nr = 1345345333;
$add = 7;
$nr2 = 0x12345671;
$size = strlen($pass);
for($i=0;$i<$size;$i++)
{
if($pass[$i] == ' ' || $pass[$i] == '\t') continue; // skipp space in password
$tmp = ord($pass[$i]);
$nr ^= ((($nr & 63)+$add)*$tmp) + ($nr << 8);
$nr2 += ($nr2 << 8) ^ $nr;
$add += $tmp;
}
$result1=$nr & ((1 << 31) -1); // Don't use sign bit (str2int)
$result2=$nr2 & ((1 << 31) -1);
$result = sprintf("%08x%08x",$result1,$result2);
return $result;
global $dbcon;
// mysql 4.1 부터 password 함수가 old_password 로바뀌었다.
$rs = query("SELECT old_password('$pass')",$dbcon);
$tmp=mysql_fetch_row ($rs);
mysql_free_result($rs);
return $tmp[0];
}
}
?>
사용법
<?php
$pass = "000";
$mysql_passwd = get_password_str($pass);
echo "000 = 77eecc750f0e0c90 = ". $mysql_passwd ."<br>";
?>
관련사이트
http://libphp.com/main/data/view.php?no=18
http://rgboard.com/rgboard/view.php?&bbs_id=bug&doc_num=226
<?php
/*
제작자이름 : 송택윤
관련사이트 : http://pia.cc
*/
// 문자열을 mysql password함수를 이용하여 암호화 한다.
if (!function_exists("get_password_str"))
{
function get_password_str($pass)
{
// mysql 4.1.0 부터 passowrd 함수의 값이 무작위로 변경되어
// 기존 password 함수와 동일한 알고리즘의 코드로 바뀌었다.
$nr = 1345345333;
$add = 7;
$nr2 = 0x12345671;
$size = strlen($pass);
for($i=0;$i<$size;$i++)
{
if($pass[$i] == ' ' || $pass[$i] == '\t') continue; // skipp space in password
$tmp = ord($pass[$i]);
$nr ^= ((($nr & 63)+$add)*$tmp) + ($nr << 8);
$nr2 += ($nr2 << 8) ^ $nr;
$add += $tmp;
}
$result1=$nr & ((1 << 31) -1); // Don't use sign bit (str2int)
$result2=$nr2 & ((1 << 31) -1);
$result = sprintf("%08x%08x",$result1,$result2);
return $result;
global $dbcon;
// mysql 4.1 부터 password 함수가 old_password 로바뀌었다.
$rs = query("SELECT old_password('$pass')",$dbcon);
$tmp=mysql_fetch_row ($rs);
mysql_free_result($rs);
return $tmp[0];
}
}
?>
사용법
<?php
$pass = "000";
$mysql_passwd = get_password_str($pass);
echo "000 = 77eecc750f0e0c90 = ". $mysql_passwd ."<br>";
?>
관련사이트
댓글목록
등록된 댓글이 없습니다.