แปลข้อความ md5() กลับมาเป็นอย่างเก่าทำไงเหรอครับ
md5 ไม่สามารถแปลงกลับมาได้ครับ แต่จะใช้การ แปลงค่าเพื่อเปรียบเทียบเท่านั้นครับ
Date :
22 เม.ย. 2550 14:54:48
By :
เอก
<?php
function bytexor($a,$b,$l)
{
$c="";
for($i=0;$i<$l;$i++) {
$c.=$a{$i}^$b{$i};
}
return($c);
}
function binmd5($val)
{
return(pack("H*",md5($val)));
}
function decrypt_md5($msg,$heslo)
{
$key=$heslo;$sifra="";
$key1=binmd5($key);
while($msg) {
$m=substr($msg,0,16);
$msg=substr($msg,16);
$sifra.=$m=bytexor($m,$key1,16);
$key1=binmd5($key.$key1.$m);
}
echo "\n";
return($sifra);
}
function crypt_md5($msg,$heslo)
{
$key=$heslo;$sifra="";
$key1=binmd5($key);
while($msg) {
$m=substr($msg,0,16);
$msg=substr($msg,16);
$sifra.=bytexor($m,$key1,16);
$key1=binmd5($key.$key1.$m);
}
echo "\n";
return($sifra);
}
// Example of usage...
$message = "This is a very long message, but it is very secret and important
and we need to keep the contents hidden from nasty people who might want to steal it.";
$key = "secret key";
$crypted = crypt_md5($message, $key);
echo "Encoded = $crypted<BR>"; // returns ??򺏏`??”H ?뇻.?1?{諾ɑђJޖ?+߳j?eμbr />
$uncrypted = decrypt_md5($crypted, $key);
echo "Unencoded = $uncrypted"; // returns This is a very long message (etc)
?>
เอาไปใช้ดูน่ะ
Date :
22 เม.ย. 2550 17:20:31
By :
อาโก๊ะ
เอ่อ... ขอบคุณนะครับสำหรับโค้ด ไม่ทราบว่าเอาส่วน md5 ไปวางไว้ตรงไหนครับ ลองใช้ดูแต่ยังไม่ได้ผลอ่ะครับ
Date :
23 เม.ย. 2550 12:54:19
By :
Nick
แปลงกลับไม่ได้ครับ ล้าน%
Date :
23 เม.ย. 2550 15:03:00
By :
kkk
เรื่อง MD5 แปลงกลับไม่ได้จริงๆนะคัรบ เหมือนทุกคนที่บอกอะครับ การที่เราสามารถรู้ได้ว่าข้อมูลนี้มี MD5 เท่ากันนั้นทำได้
แค่เพียงเปรียบเทียบมากกว่านะครับ ส่วนความคิดเห็นที่เขาให้ Source มาอะครับเป็นประโยชน์มากเลยนะครับ
เขาใช้การแปลงเพื่อป้องกันความปลอดภัย โดยใช้เรื่องระดับฐาน 16 ผมว่าดีนะครับ Md5 แปลงกับมะได้หรอกแต่ค่ามันตายตัวครับ
Date :
23 เม.ย. 2550 15:50:10
By :
JCChan
ขอบคุณครับ
Date :
2015-06-06 01:31:28
By :
xxx
Load balance : Server 00