|
用PHP写的MD5加密函数
用PHP写的MD5加密函数 //php_md5("字符串") define("BITS_TO_A_BYTE",8); define("BYTES_TO_A_WORD",4); define("BITS_TO_A_WORD",32); $m_lOnBits=array(30); $m_l2Power=array(30);
function LShift($lValue,$iShiftBits) { if ($iShiftBits==0) return $lValue; if ($iShiftBits==31) { if ($lValue&1) { return 0x80000000; } else { return 0; } } if ($iShiftBits < 0 || $iShiftBits > 31) { } if (($lValue&$GLOBALS[31-$iShiftBits])) { $tmpstr=(($lValue&$GLOBALS[31-($iShiftBits+1)])*$GLOBALS[$iShiftBits])|0x80000000; } else { $tmpstr=(($lValue&$GLOBALS[31-$iShiftBits])*$GLOBALS[$iShiftBits]); } return $tmpstr; }
function RShift($lValue,$iShiftBits) { if ($iShiftBits==0)return $lValue; if ($iShiftBits==31) { if ($lValue&0x80000000) { return 1; } else { return 0; } } if ($iShiftBits<0 || $iShiftBits>31) { } $tmpstr=floor(($lValue&0x7FFFFFFE)/$GLOBALS[$iShiftBits]); if ($lValue&0x80000000) { $tmpstr=$tmpstr|floor(0x40000000/$GLOBALS[$iShiftBits-1]); } return $tmpstr; }
function RotateLeft($lValue,$iShiftBits) { return LShift($lValue,$iShiftBits)|RShift($lValue,(32-$iShiftBits)); }
function AddUnsigned($lX,$lY) { $lX8=$lX&0x80000000; $lY8=$lY&0x80000000; $lX4=$lX&0x40000000; $lY4=$lY&0x40000000; $lResult=($lX&0x3FFFFFFF)+($lY&0x3FFFFFFF);
if ($lX4&$lY4) { $lResult=$lResult^0x80000000^$lX8^$lY8; } if ($lX4|$lY4) { if ($lResult&0x40000000) { $lResult=$lResult^0xC0000000^$lX8^$lY8; } else { $lResult=$lResult^0x40000000^$lX8^$lY8; } } else { $lResult=$lResult^$lX8^$lY8; } return $lResult; }
function md5_F($x,$y,$z) { return ($x&$y)|((~$x)&$z); }
function md5_G($x,$y,$z) { return ($x&$z)|($y&(~$z)); }
function md5_H($x,$y,$z) { return ($x^$y^$z); }
function md5_I($x,$y,$z) { return ($y^($x|(~$z))); }
function md5_FF(&$a,$b,$c,$d,$x,$s,$ac) { $a=AddUnsigned($a,AddUnsigned(AddUnsigned(md5_F($b,$c,$d),$x),$ac)); $a=RotateLeft($a,$s); $a=AddUnsigned($a,$b); }
function md5_GG(&$a,$b,$c,$d,$x,$s,$ac) { $a=AddUnsigned($a,AddUnsigned(AddUnsigned(md5_G($b,$c,$d),$x),$ac)); $a=RotateLeft($a,$s); $a=AddUnsigned($a,$b); }
function md5_HH(&$a,$b,$c,$d,$x,$s,$ac) { $a=AddUnsigned($a,AddUnsigned(AddUnsigned(md5_H($b,$c,$d),$x),$ac)); $a=RotateLeft($a,$s); $a=AddUnsigned($a,$b); }
function md5_II(&$a,$b,$c,$d,$x,$s,$ac) { $a=AddUnsigned($a,AddUnsigned(AddUnsigned(md5_I($b,$c,$d),$x),$ac)); $a=RotateLeft($a,$s); $a=AddUnsigned($a,$b); }
本新闻共2页,当前在第1页 1 2 本新闻共2页,当前在第1页 1 2 返回类别: 教程 上一教程: PHP新手上路(二) 下一教程: 根据已有报告文件创建Web服务
您可以阅读与"用PHP写的MD5加密函数"相关的教程: · php做饼图的函数 · PHP读取某站点的链接的函数 · PHP4新函数集锦 · 第四节--构造函数和析构函数 -- Classes and Objects in PHP5 [4] · php写的发送附件的程序(一)
|