²é¿´: 150  |  »Ø¸´: 0
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

AAAÃÜ

½ð³æ (ÕýʽдÊÖ)


[×ÊÔ´] PHPÊý¾Ý¼ÓÃÜ

Êý¾Ý¼ÓÃÜÔÚÎÒÃÇÉú»îÖеĵØÎ»ÒѾ­Ô½À´Ô½ÖØÒªÁË£¬ÓÈÆäÊÇ¿¼Âǵ½ÔÚÍøÂçÉÏ·¢ÉúµÄ´óÁ¿ ½»Ò׺ʹ«ÊäµÄ´óÁ¿Êý¾Ý¡£Èç¹û¶ÔÓÚ²ÉÓð²È«´ëÊ©ÓÐÐËȤµÄ»°£¬Ò²Ò»¶¨»áÓÐÐËȤÁ˽âPHPÌṩµÄһϵÁа²È«¹¦ÄÜ¡£ÔÚ±¾ÆªÎÄÕÂÖУ¬ÎÒÃǽ«½éÉÜÕâЩ ¹¦ÄÜ£¬ÌṩһЩ»ù±¾µÄÓ÷¨£¬ÒÔ±ãÄãÄܹ»Îª×Ô¼ºµÄÓ¦ÓÃÈí¼þÖÐÔö¼Ó°²È«¹¦ÄÜ¡£
Ô¤±¸ÖªÊ¶
ÔÚÏêϸ½éÉÜPHPµÄ°²È«¹¦ÄÜÖ® ǰ£¬ÎÒÃÇÐèÒª»¨µãʱ¼äÀ´ÏòûÓнӴ¥¹ýÕâ·½ÃæÄÚÈݵĶÁÕß½éÉÜһЩÓйØÃÜÂëѧµÄ»ù±¾ÖªÊ¶£¬Èç¹û¶ÔÃÜÂëѧµÄ»ù±¾¸ÅÄîÒѾ­·Ç³£ÊìϤ£¬¾Í¿ÉÒÔÌø ¹ýÈ¥ÕâÒ»²¿·Ö¡£
ÃÜÂëѧ¿ÉÒÔͨË׵ر»ÃèÊöΪ¶Ô¼Ó/½âÃܵÄÑо¿ºÍʵÑ飬¼ÓÃÜÊǽ«Ò×¶®µÄ×ÊÁÏת»»Îª²»Ò×¶®×ÊÁϵĹý³Ì£¬½âÃÜ ÔòÊǽ«²»Ò×¶®µÄ×ÊÁÏת»»ÎªÔ­À´Ò×¶®×ÊÁϵĹý³Ì¡£²»Ò×¶®µÄ×ÊÁϱ»³Æ×÷ÃÜÂ룬Ò×¶®µÄ×ÊÁϱ»³Æ×÷Ã÷Âë¡£
Êý¾ÝµÄ¼Ó/½âÃܶ¼Ðè ÒªÒ»¶¨µÄËã·¨£¬ÕâЩËã·¨¿ÉÒԷdz£µØ¼òµ¥£¬ÈçÖøÃûµÄ¿­ÈöÂ룬µ«µ±Ç°µÄ¼ÓÃÜËã·¨ÒªÏà¶Ô¸´Ôӵö࣬ÆäÖÐһЩÀûÓÃÏÖÓеķ½·¨ÉõÖÁÊÇÎÞ·¨ÆÆÒëµÄ ¡£

PHPµÄ¼ÓÃܹ¦ÄÜ
Ö»ÒªÓÐÒ»µãʹÓ÷ÇWindowsƽ̨¾­ÑéµÄÈË¿ÉÄܶÔcrypt()Ò²Ï൱ÊìϤ£¬ÕâÒ»º¯ÊýÍê³É±»³Æ×÷µ¥Ïò¼ÓÃÜ µÄ¹¦ÄÜ£¬Ëü¿ÉÒÔ¼ÓÃÜһЩÃ÷Â룬µ«²»Äܹ»½«ÃÜÂëת»»ÎªÔ­À´µÄÃ÷Âë¡£¾¡¹Ü´Ó±íÃæÉÏÀ´¿´ÕâËÆºõÊÇÒ»¸öûÓÐʲôÓô¦µÄ¹¦ÄÜ£¬µ«ËüµÄÈ·±»¹ã·ºÓà À´±£Ö¤ÏµÍ³ÃÜÂëµÄÍêÕûÐÔ¡£ÒòΪ£¬µ¥Ïò¼ÓÃܵĿÚÁîÒ»µ©ÂäÈëµÚÈý·½È˵ÄÊÖÀÓÉÓÚ²»Äܱ»»¹Ô­ÎªÃ÷ÎÄ£¬Òò´ËҲûÓÐʲô´óÓô¦¡£ÔÚÑéÖ¤Óû§Êä ÈëµÄ¿ÚÁîʱ£¬Óû§µÄÊäÈë²ÉÓõÄÒ²Êǵ¥ÏòËã·¨£¬Èç¹ûÊäÈëÓë´æ´¢µÄ¾­¼ÓÃܺóµÄ¿ÚÁîÏàÆ¥Å䣬ÔòÊäÈëµÄ¿ÚÐÅÒ»¶¨ÊÇÕýÈ·µÄ¡£
PHPͬÑùÌṩÁËʹÓÃÆäcrypt()º¯ÊýÍê³Éµ¥Ïò¼ÓÃܹ¦ÄܵĿÉÄÜÐÔ¡£ÎÒ½«ÔÚÕâÀï¼òÒªµØ½éÉܸú¯Êý£º
string crypt (string input_string [, string salt])
ÆäÖеÄinput_string²ÎÊýÊÇÐèÒª¼ÓÃܵÄ×Ö·û´®£¬µÚ¶þ¸ö¿ÉÑ¡µÄsaltÊÇÒ»¸öλ×Ö´®£¬ËüÄܹ»Ó°Ïì ¼ÓÃܵݵÂ룬½øÒ»²½µØÅųý±»³Æ×÷Ô¤¼ÆËã¹¥»÷µÄ¿ÉÄÜÐÔ¡£È±Ê¡Çé¿öÏ£¬PHPʹÓÃÒ»¸ö2¸ö×Ö·ûµÄDES¸ÉÈÅ´®£¬Èç¹ûÄãµÄϵͳʹÓõÄÊÇMD5£¨ÎÒ½«ÔÚ ÒÔºó½éÉÜMD5Ëã·¨£©£¬Ëü»áʹÓÃÒ»¸ö12¸ö×Ö·ûµÄ¸ÉÈÅ´®¡£Ë³±ã˵һÏ£¬¿ÉÒÔͨ¹ýÖ´ÐÐÏÂÃæµÄÃüÁî·¢ÏÖϵͳ½«ÒªÊ¹ÓõĸÉÈÅ´®µÄ³¤¶È£º
print "My system salt size is: ". CRYPT_SALT_LENGTH;
ϵͳҲ¿ÉÄÜÖ§³ÖÆäËûµÄ¼ÓÃÜËã·¨¡£crypt()Ö§³ÖËÄ ÖÖËã·¨£¬ÏÂÃæÊÇËüÖ§³ÖµÄËã·¨ºÍÏàÓ¦µÄsalt²ÎÊýµÄ³¤¶È£º
Ëã·¨¡¡¡¡¡¡¡¡¡¡ Salt³¤¶È
CRYPT_STD_DES¡¡2-character (Default)
CRYPT_EXT_DES¡¡9-character
CRYPT_MD5¡¡¡¡¡¡12-character beginning with $1$
CRYPT_BLOWFISH 16-character beginning with $2$

ÓÃcrypt()ʵÏÖÓû§Éí·ÝÑéÖ¤
×÷Ϊcrypt()º¯ÊýµÄÒ»¸öÀý×Ó£¬¿¼ÂÇÕâÑùÒ»ÖÖÇé¿ö£¬ÄãÏ£Íû´´½¨Ò»¶ÎPHP½Å±¾³ÌÐòÏÞ ÖÆ¶ÔÒ»¸öĿ¼µÄ·ÃÎÊ£¬Ö»ÔÊÐíÄܹ»ÌṩÕýÈ·µÄÓû§ÃûºÍ¿ÚÁîµÄÓû§·ÃÎÊÕâһĿ¼¡£ÎÒ½«°Ñ×ÊÁÏ´æ´¢ÔÚÎÒϲ»¶µÄÊý¾Ý¿âMySQLµÄÒ»¸ö±íÖС£ÏÂÃæÎÒ ÃÇÒÔ´´½¨Õâ¸ö±»³Æ×÷membersµÄ±í¿ªÊ¼ÎÒÃǵÄÀý×Ó£º
mysql>CREATE TABLE members (
->username CHAR(14) NOT NULL,
->password CHAR(32) NOT NULL,
->PRIMARY KEY(username)
->;
È»ºó£¬ÎÒÃǼٶ¨ÏÂÃæµÄÊý¾ÝÒѾ­´æ´¢ÔڸñíÖУº
Óû§Ãû ÃÜÂë
clark¡¡keloD1C377lKE
bruce¡¡ba1T7vnz9AWgk
peter¡¡paLUvRWsRLZ4U
ÕâЩ¼ÓÃܵĿÚÁî¶ÔÓ¦µÄÃ÷Âë·Ö±ðÊÇkent¡¢bannerºÍparker¡£×¢ÒâÒ»ÏÂÿ¸ö¿ÚÁîµÄǰ¶þ¸ö×Öĸ£¬ ÕâÊÇÒòΪÎÒʹÓÃÁËÏÂÃæµÄ´úÂ룬¸ù¾Ý¿ÚÁîµÄǰ¶þ¸ö×Öĸ´´½¨¸ÉÈÅ´®µÄ£º
$enteredPassword.
$salt = substr($enteredPassword, 0, 2);
$userPswd = crypt($enteredPassword, $salt);
// $userPswdÈ»ºó¾ÍºÍÓû§ÃûÒ»Æð´æ´¢ÔÚMySQL ÖÐ
ÎÒ½«Ê¹ÓÃApacheµÄ¿ÚÁî-Ó¦´ðÈÏÖ¤ÅäÖÃÌáʾÓû§ÊäÈëÓû§ÃûºÍ¿ÚÁһ¸öÏÊΪÈËÖªµÄÓйØPHPµÄÐÅÏ¢ÊÇ£¬Ëü¿ÉÒÔ°ÑApache µÄ¿ÚÁî-Ó¦´ðϵͳÊäÈëµÄÓû§ÃûºÍ¿ÚÁîʶ±ðΪ$PHP_AUTH_USERºÍ$PHP_AUTH_PW£¬ÎÒ½«ÔÚÉí·ÝÑéÖ¤½Å±¾ÖÐÓõ½Õâ¶þ¸ö±äÁ¿¡£»¨Ò»Ð©Ê±¼ä×ÐϸÔĶÁÏÂ ÃæµÄ½Å±¾£¬¶à×¢ÒâÒ»ÏÂÆäÖеĽâÊÍ£¬ÒÔ±ã¸üºÃµØÀí½âÏÂÃæµÄ´úÂ룺
crypt()ºÍApacheµÄ¿ÚÁî-Ó¦´ðÑé֤ϵͳµÄÓ¦ÓÃ
$host = "localhost";
$user = "zorro";
$pswd = "hell odolly";
$db = "users";
// Set authorization to False
$authorization = 0;
// Verify that user has entered username and password
if (isset($PHP_AUTH_USER) && isset($PHP_AUTH_PW)) :
mysql_pconnect($host, $user, $pswd) or die("Can\'t connect to MySQL
server!";
mysql_select_db($db) or die("Can\'t select database!";
// Perform the encryption
$salt = substr($PHP_AUTH_PW, 0, 2);
$encrypted_pswd = crypt($PHP_AUTH_PW, $salt);
// Build the query
$query = "SELECT username FROM members WHERE
username = \'$PHP_AUTH_USER\' AND
password = \'$encrypted_pswd\'";
// Execute the query
if (mysql_numrows(mysql_query($query)) == 1) :
$authorization = 1;
endif;
endif;
// confirm authorization
if (! $authorization) :
header(\'WWW-Authenticate: Basic realm="Private"\');
header(\'HTTP/1.0 401 Unauthorized\');
print "You are unauthorized to enter this area.";
exit;
else :
print "This is the secret data!";
endif;
?>
ÉÏÃæ¾ÍÊÇÒ»¸öºËʵÓû§·ÃÎÊȨÏ޵ļòµ¥Éí·ÝÑé֤ϵͳ¡£ÔÚʹÓÃcrypt()±£»¤ÖØÒªµÄ»úÃÜ×ÊÁÏʱ£¬¼ÇסÔÚȱʡ״̬ÏÂʹÓÃµÄ crypt()²¢²»ÊÇ×ȫµÄ£¬Ö»ÄÜÓÃÔÚ¶Ô°²È«ÐÔÒªÇó½ÏµÍµÄϵͳÖУ¬Èç¹ûÐèÒª½Ï¸ßµÄ°²È«ÐÔÄÜ£¬¾ÍÐèÒªÎÒÔÚ±¾ÆªÎÄÕµĺóÃæ½éÉܵÄËã·¨¡£
ÏÂÃæÎÒ½«½éÉÜÁíÒ»¸öPHPÖ§³ÖµÄº¯Êý©¥©¥md5()£¬ÕâÒ»º¯ÊýʹÓÃMD5É¢ÁÐËã·¨£¬ËüÓм¸ÖÖºÜÓÐȤµÄÓ÷¨ÖµµÃÒ»Ì᣺

»ì±à
Ò»¸ö»ì±àº¯Êý¿ÉÒÔ½«Ò»¸ö¿É±ä³¤¶ÈµÄÐÅÏ¢±ä»»Îª¾ßÓй̶¨³¤¶È±»»ì±à¹ýµÄÊä³ö£¬Ò²±»³Æ×÷¡°ÐÅÏ¢ÎÄÕª¡±¡£ÕâÊÇÊ®·ÖÓÐÓõģ¬ÒòΪ Ò»¸ö¹Ì¶¨³¤¶ÈµÄ×Ö·û´®¿ÉÒÔÓÃÀ´¼ì²éÎļþµÄÍêÕûÐÔºÍÑéÖ¤Êý×ÖÇ©ÃûÒÔ¼°Óû§Éí·ÝÑéÖ¤¡£ÓÉÓÚËüÊʺÏÓÚPHP£¬PHPÄÚÖõÄmd5()»ì±àº¯Êý½«°ÑÒ»¸ö¿É ±ä³¤¶ÈµÄÐÅϢת»»Îª128루32¸ö×Ö·û£©µÄÐÅÏ¢ÎÄÕª¡£»ì±àµÄÒ»¸öÓÐȤµÄÌØµãÊDz»ÄÜͨ¹ý·ÖÎö»ì±àºóµÄÐÅÏ¢µÃµ½Ô­À´µÄÃ÷Â룬ÒòΪ»ì±àºóµÄ½á¹û ÓëÔ­À´µÄÃ÷ÂëÄÚÈÝûÓÐÒÀÀµ¹ØÏµ¡£ ¼´±ãÖ»¸Ä±äÒ»¸ö×Ö·û´®ÖеÄÒ»¸ö×Ö·û£¬Ò²½«Ê¹µÃMD5»ì±àËã·¨¼ÆËã³ö¶þ¸ö½ØÈ»²»Í¬µÄ½á¹û¡£ÎÒÃÇÊ×ÏÈÀ´¿´Ï ±íµÄÄÚÈݼ°ÆäÏàÓ¦µÄ½á¹û£º
¡¡
ʹÓÃmd5()»ì±à×Ö·û´®
$msg = "This is some message that I just wrote";
$enc_msg = md5($msg);
print "hash: $enc_msg ";
?>
½á¹û£º
hash: 81ea092649ca32b5ba375e81d8f4972c
×¢Ò⣬½á¹ûµÄ³¤¶ÈΪ32¸ö×Ö·û¡£ÔÙÀ´¿´Ò»ÏÂÏÂÃæµÄ±í£¬ÆäÖеÄ$msgµÄÖµÓÐÁËÒ»µã ΢СµÄ±ä»¯£º
ʹÓÃmd5()¶ÔÒ»¸öÉÔ΢±ä»¯µÄ×Ö·û´®½øÐлì±à
//×¢Ò⣬messageÖÐÉÙÁËÒ»¸ös
$msg = "This is some mesage that I just wrote";
$enc_msg = md5($msg);
print "hash2: $enc_msg
";
?>
½á¹û£º
hash2: e86cf511bd5490d46d5cd61738c82c0c
¿ÉÒÔ ·¢ÏÖ£¬¾¡¹Ü¶þ¸ö½á¹ûµÄ³¤¶È¶¼ÊÇ32¸ö×Ö·û£¬µ«Ã÷ÎÄÖÐÒ»µã΢СµÄ±ä»¯Ê¹µÃ½á¹û·¢ÉúÁ˺ܴóµÄ±ä»¯£¬Òò´Ë£¬»ì±àºÍmd5()º¯ÊýÊǼì²éÊý¾ÝÖÐ΢С±ä »¯µÄÒ»¸öºÜºÃµÄ¹¤¾ß¡£
¾¡¹Ücrypt()ºÍmd5()¸÷ÓÐÓô¦£¬µ«¶þÕßÔÚ¹¦ÄÜÉ϶¼Êܵ½Ò»¶¨µÄÏÞÖÆ¡£ÔÚÏÂÃæµÄ²¿·ÖÖУ¬ÎÒÃǽ«½éÉÜ ¶þ¸ö·Ç³£ÓÐÓõı»³Æ×÷McryptºÍMhashµÄPHPÀ©Õ¹£¬½«´ó´óÍØÕ¹PHPÓû§ÔÚ¼ÓÃÜ·½ÃæµÄÑ¡Ôñ¡£
¾¡¹ÜÎÒÃÇÔÚÉÏÃæµÄС½ÚÖÐ˵Ã÷ÁË µ¥Ïò¼ÓÃܵÄÖØÒªÐÔ£¬µ«ÓÐʱÎÒÃÇ¿ÉÄÜÐèÒªÔÚ¼ÓÃܺó£¬ÔÙ°ÑÃÜÂëÊý¾Ý»¹Ô­³ÉÔ­À´µÄÊý¾Ý£¬ÐÒÔ˵ÄÊÇ£¬PHPͨ¹ýMcryptÀ©Õ¹¿âµÄÐÎʽÌṩÁËÕâÖÖ¿ÉÄÜ ÐÔ¡£
Mcrypt
Mcrypt 2.5.7 Unix | Win32
Mcrypt 2.4.7ÊÇÒ»¸ö¹¦ÄÜÇ¿´óµÄ¼ÓÃÜËã·¨À©Õ¹¿â£¬Ëü°üÀ¨ÓÐ22ÖÖËã·¨ £¬ÆäÖоͰüÀ¨ÏÂÃæµÄ¼¸ÖÖËã·¨£º
Blowfish RC2 Safer-sk64 xtea
Cast-256 RC4 Safer-sk128
DES RC4-iv Serpent
Enigma Rijndael-128 Threeway
Gost Rijndael-192 TripleDES
LOKI97 Rijndael-256 Twofish
PanamaSaferplus Wake
°²×°£º
ÔÚ±ê×¼µÄPHPÈí¼þ°üÖв»°üÀ¨Mcrypt£¬Òò´ËÐèÒªÏÂÔØËü£¬ÏÂÔØµÄµØÖ·Îª£ºftp://argeas.cs-net.gr/pub/unix/mcrypt/ ¡£ÏÂÔØºó£¬°´ÕÕÏÂÃæµÄ·½·¨½øÐбàÒ룬²¢°ÑËüÀ©³äÔÚPHPÖУº
ÏÂÔØMcryptÈí¼þ°ü¡£
gunzipmcrypt-x.x.x.tar.gz
tar -xvfmcrypt-x.x.x.tar
./configure --disable-posix-threads
make
make install
cd to your PHP directory.
./configure -with-mcrypt=[dir] [--other-configuration-directives]
make
make install
µ±È»ÁË£¬¸ù¾ÝÄãµÄ ÒªÇóºÍPHP°²×°Ê±Ó뻥ÁªÍø·þÎñÆ÷Èí¼þµÄ¹ØÏµ£¬ÉÏÃæµÄ¹ý³Ì¿ÉÄÜÐèÒª×÷Êʵ±µÄÐ޸ġ£

ʹÓÃMcrypt
McryptµÄÓŵ㲻½ö½ö ÔÚÓÚÆäÌṩµÄ¼ÓÃÜËã·¨½Ï¶à£¬»¹ÔÚÓÚËü¿ÉÒÔ¶ÔÊý¾Ý½øÐмÓ/½âÃÜ´¦Àí£¬´ËÍ⣬Ëü»¹ÌṩÁË35ÖÖ´¦ÀíÊý¾ÝÓõĺ¯Êý¡£¾¡¹Ü¶ÔÕâЩº¯Êý½øÐÐÏêϸ½éÉÜ ÒѾ­³¬³öÁËÕâÆªÎÄÕµķ¶Î§£¬ÎÒ»¹ÊÇÒª¾Í¼¸¸öµäÐ͵ĺ¯Êý×÷һϼòÒªµÄ½éÉÜ¡£
Ê×ÏÈ£¬ÎÒ½«½éÉÜÈçºÎʹÓÃMcryptÀ©Õ¹¿â¶ÔÊý ¾Ý½øÐмÓÃÜ£¬È»ºóÔÙ½éÉÜÈçºÎʹÓÃËü½øÐнâÃÜ¡£ÏÂÃæµÄ´úÂë¶ÔÕâÒ»¹ý³Ì½øÐÐÁËÑÝʾ£¬Ê×ÏÈÊǶÔÊý¾Ý½øÐмÓÃÜ£¬È»ºóÔÚä¯ÀÀÆ÷ÉÏÏÔʾ¼ÓÃܺóµÄÊý ¾Ý£¬²¢½«¼ÓÃܺóµÄÊý¾Ý»¹Ô­ÎªÔ­À´µÄ×Ö·û´®£¬½«ËüÏÔʾÔÚä¯ÀÀÆ÷ÉÏ¡£
ʹÓÃMcrypt¶ÔÊý¾Ý½øÐмӡ¢½âÃÜ

// Designate string to be encrypted
$string = "Applied Cryptography, by Bruce Schneier, is
a wonderful cryptography reference.";
// Encryption/decryption key
$key = "Four score and twenty years ago";
// Encryption Algorithm
$cipher_alg = MCRYPT_RIJNDAEL_128;
// Create the initialization vector for added security.
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,
MCRYPT_MODE_ECB), MCRYPT_RAND);
// Output original string
print "Original string: $string
";
// Encrypt $string
$encrypted_string = mcrypt_encrypt($cipher_alg, $key,
$string, MCRYPT_MODE_CBC, $iv);
// Convert to hexadecimal and output to browser
print "Encrypted string: ".bin2hex($encrypted_string)."
";
$decrypted_string = mcrypt_decrypt($cipher_alg, $key,
$encrypted_string, MCRYPT_MODE_CBC, $iv);
print "Decrypted string: $decrypted_string";
?>
Ö´ÐÐÉÏÃæµÄ½Å±¾½«»á²úÉúÏÂÃæµÄÊä³ö£º
Original string: Applied Cryptography, by Bruce Schneier, is a wonderful cryptography reference.
Encrypted string: 02a7c58b1ebd22a9523468694b091e60411cc4dea8652bb8072 34fa06bbfb20e71ecf525f29df58e28f3d9bf541f7ebcecf62b c89fde4d8e7ba1e6cc9ea24850478c11742f5cfa1d23fe22fe8 bfbab5e
Decrypted string: Applied Cryptography, by Bruce Schneier, is a wonderful cryptography reference.
ÉÏÃæµÄ´úÂëÖжþ¸ö×îµäÐ͵ĺ¯ÊýÊÇmcrypt_encrypt()ºÍ mcrypt_decrypt()£¬ËüÃǵÄÓÃ;ÊÇÏÔ¶øÒ×¼ûµÄ¡£ÎÒʹÓÃÁË¡°µç±¨ÃÜÂë±¾¡±Ä£Ê½£¬McryptÌṩÁ˼¸ÖÖ¼ÓÃÜ·½Ê½£¬ÓÉÓÚÿÖÖ¼ÓÃÜ·½Ê½¶¼ÓпÉÒÔÓ°Ïì ÃÜÂ밲ȫµÄÌØ¶¨×Ö·û£¬Òò´ËÿÖÖģʽ¶¼ÐèÒªÁ˽⡣¶ÔÓÚûÓнӴ¥¹ýÃÜÂëϵͳµÄ¶ÁÕßÀ´Ëµ£¬¿ÉÄܶÔmcrypt_create_iv()º¯Êý¸üÓÐÐËȤ£¬¾¡¹Ü¶ÔÕâ Ò»º¯Êý½øÐг¹µ×µÄ½âÊÍÒѾ­³¬³öÁ˱¾ÆªÎÄÕµķ¶Î§£¬µ«ÎÒÈÔÈ»»áÌáµ½Ëü´´½¨µÄ³õʼ»¯ÏòÁ¿£¨hence, iv£©£¬ÕâÒ»ÏòÁ¿¿ÉÒÔʹÿÌõÐÅÏ¢±Ë´Ë¶ÀÁ¢¡£ ¾¡¹Ü²»ÊÇËùÓеÄģʽ¶¼ÐèÒªÕâÒ»³õʼ»¯±äÁ¿£¬µ«Èç¹ûÔÚÒªÇóµÄģʽÖÐûÓÐÌṩÕâÒ»±äÁ¿£¬PHP¾Í»á¸ø³ö¾¯¸æÐÅÏ¢¡£

MhashÀ©Õ¹¿â
http://sourceforge.net/projects/mhash/
0.8.3°æµÄMhashÀ©Õ¹¿âÖ§³Ö12ÖÖ»ì±àËã·¨£¬×Ðϸ¼ì²éMhash v.0.8.3µÄÍ·Îļþmhash.h¿ÉÒÔÖªµÀ£¬ËüÖ§³ÖÏÂÃæµÄ»ì±àËã·¨£º
CRC32 HAVAL160 MD5
CRC32B HAVAL192 RIPEMD160
GOST HAVAL224 SHA1
HAVAL128 HAVAL256 TIGER
°²×°
ÏóMcryptÒ» Ñù£¬MhashҲûÓаüÀ¨ÔÚPHPÈí¼þ°üÖУ¬¶ÔÓÚ·ÇWindowsÓû§¶øÑÔ£¬ÏÂÃæÊǰ²×°¹ý³Ì£º
ÏÂÔØMhashÀ©Õ¹¿â
gunzipmhash-x.x.x.tar.gz
tar -xvfmhash-x.x.x.tar
./configure
make
make install
cd
./configure -with-mhash=[dir] [--other-configuration-directives]
make
make install
ÏóMcryptÒ»Ñù £¬¸ù¾ÝPHPÔÚ»¥ÁªÍø·þÎñÆ÷Èí¼þÉϵݲװ·½Ê½£¬¿ÉÄÜÐèÒª¶ÔMhash½øÐÐÆäËûµÄÅäÖá£
¶ÔÓÚWindowsÓû§¶øÑÔ£¬ http://www.php4win.deÖÐÓÐÒ»¸öºÜºÃµÄ°üÀ¨MhashÀ©Õ¹¿âÔÚÄÚµÄPHPÈí¼þ°ü¡£Ö»ÒªÏÂÔØ²¢½øÐнâѹËõ£¬È»ºó¸ù¾ÝÆäÖеÄreadme.firstÎĵµÖеÄÖ¸ Áî½øÐа²×°¼´¿É¡£

ʹÓÃMhash
¶ÔÐÅÏ¢½øÐлì±à·Ç³£¼òµ¥£¬¿´Ò»ÏÂÏÂÃæµÄÀý×Ó£º
$hash_alg = MHASH_TIGER;
$message = "These are the directions to the secret fort. Two steps left, three steps right, and cha chacha.";
$hashed_message = mhash($hash_alg, $message);
print "The hashed message is ". bin2hex($hashed_message);
?>
Ö´ÐÐÕâÒ»¶Î½Å±¾³ÌÐò½«µÃµ½ÏÂÃæµÄÊä³ö½á¹û£º
The hashed message is 07a92a4db3a4177f19ec9034ae5400eb60d1a9fbb4ade461
ÔÚÕâÀïʹÓÃbin2hex()º¯ÊýµÄÄ¿µÄÊÇ·½±ãÎÒÃÇÀí½â$hashed_message µÄÊä³ö£¬ÕâÊÇÒòΪ»ì±àµÄ½á¹ûÊǶþ½øÖƸñʽ£¬ÎªÁËÄܹ»½«Ëüת»¯ÎªÒ×ÓÚÀí½âµÄ¸ñʽ£¬±ØÐ뽫Ëüת»»ÎªÊ®Áù½øÖƸñʽ¡£
ÐèÒª ×¢ÒâµÄÊÇ£¬»ì±àÊǵ¥Ïò¹¦ÄÜ£¬Æä½á¹û²»ÒÀÀµÊäÈ룬Òò´Ë¿ÉÒÔ¹«¿ªÏÔʾÕâÒ»ÐÅÏ¢¡£ÕâÒ»²ßÂÔͨ³£ÓÃÓÚÈÃÓû§±È½ÏÏÂÔØÎļþºÍϵͳ¹ÜÀíÔ±ÌṩµÄÎÄ ¼þ£¬ÒÔÈ·±£ÎļþµÄÍêÕûÐÔ¡£
Mhash»¹ÓÐÆäËûһЩÓÐÓõĺ¯Êý¡£ÀýÈ磬ÎÒÐèÒªÊä³öÒ»¸öMhashÖ§³ÖµÄËã·¨µÄÃû×Ö£¬ÓÉÓÚ MhashÖ§³ÖµÄËùÓÐËã·¨µÄÃû×Ö¶¼ÒÔMHASH_¿ªÍ·£¬Òò´Ë£¬¿ÉÒÔͨ¹ýÖ´ÐÐÈçϵĴúÂëÍê³ÉÕâÒ»ÈÎÎñ£º
$hash_alg = MHASH_TIGER;
print "This data has been hashed with the".mhash_get_hash_name($hashed_message)."hashing algorithm.";
?>
µÃµ½µÄÊä³öÊÇ£º
This data has been hashed with the TIGER hashing algorithm.
¹ØÓÚPHPºÍ¼ÓÃÜ×îºóÐèҪעÒâµÄÒ»¸öÎÊÌâ
¹ØÓÚPHPºÍ¼ÓÃÜÐèҪעÒâµÄ×îºóµÄÒ»¸öÖØÒªÎÊÌâÊÇÔÚ·þÎñÆ÷ºÍ¿Í»§¶ËÖ®¼ä´«ÊäµÄÊý¾Ý ÔÚ´«Êä¹ý³ÌÖÐÊDz»°²È«µÄ£¡PHPÊÇÒ»ÖÖ·þÎñÆ÷¶Ë¼¼Êõ£¬²»ÄÜ×èÖ¹Êý¾ÝÔÚ´«Êä¹ý³ÌÖÐйÃÜ¡£Òò´Ë£¬Èç¹ûÏëʵÏÖÒ»¸öÍêÕûµÄ°²È«Ó¦Ó㬽¨ÒéÑ¡Óà Apache-SSL»òÆäËûµÄ°²È«·þÎñÆ÷²¼Öá£

½áÂÛ
ÕâÆªÎÄÕ½éÉÜÁËPHP×îÓÐÓõŦÄÜÖ®Ò»©¥©¥Êý¾Ý¼ÓÃÜ£¬²»½öÌÖÂÛÁËPHPÄÚÖà µÄcrypt() ºÍmd5()¼ÓÃܺ¯Êý£¬»¹ÌÖÂÛÁËÓÃÓÚÊý¾Ý¼ÓÃܵŦÄÜÇ¿´óµÄÀ©Õ¹¿â©¥©¥McryptºÍMhash¡£ÔÚÕâÆªÎÄÕÂ×îºó£¬ÎÒÐèÒªÖ¸³öµÄÊÇ£¬Ò»¸öÕæÕý °²È«µÄPHPÓ¦Óû¹Ó¦¸Ã°üÀ¨°²È«µÄ·þÎñÆ÷£¬ÓÉÓÚPHPÊÇÒ»ÖÖ·þÎñÆ÷¶ËµÄ¼¼Êõ£¬Òò´Ë£¬ÔÚÊý¾ÝÓɿͻ§¶ËÏò·þÎñÆ÷¶Ë½øÐд«Êäʱ£¬Ëü²»Äܱ£Ö¤Êý¾ÝµÄ°²È«¡£
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ AAAÃÜ µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 335Çóµ÷¼Á +4 yuyuÓî 2026-03-23 5/250 2026-03-23 23:49 by Txy@872106
[¿¼ÑÐ] 070300»¯Ñ§Çóµ÷¼Á +8 Ô·¶¹¶¹ 2026-03-20 8/400 2026-03-23 20:57 by baobaoye
[¿¼ÑÐ] 316Çóµ÷¼Á +7 ÁºÜçö© 2026-03-19 7/350 2026-03-23 16:21 by lingjue
[¿¼ÑÐ] 350Çóµ÷¼Á +6 weudhdk 2026-03-19 6/300 2026-03-23 15:47 by tangyuan0840221
[¿¼ÑÐ] 328Çóµ÷¼Á +4 LHHL66 2026-03-23 4/200 2026-03-23 14:55 by lbsjt
[¿¼ÑÐ] ±±¿Æ281ѧ˶²ÄÁÏÇóµ÷¼Á +8 tcxiaoxx 2026-03-20 9/450 2026-03-23 12:16 by tcxiaoxx
[¿¼ÑÐ] 333Çóµ÷¼Á +6 87639 2026-03-21 10/500 2026-03-23 10:41 by Iveryant
[¿¼ÑÐ] 352Çóµ÷¼Á +3 ´óÃ×·¹£¡ 2026-03-22 3/150 2026-03-22 23:28 by king123£¡
[¿¼ÑÐ] ÉúÎïѧ071000 329·ÖÇóµ÷¼Á +5 ÎÒ°®ÉúÎïÉúÎﰮΠ2026-03-17 5/250 2026-03-22 16:42 by tcx007
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖÐÄÏ»¯Ñ§£¨0703£©×Ü·Ö337Çóµ÷¼Á +9 niko- 2026-03-19 10/500 2026-03-22 16:08 by ColorlessPI
[¿¼ÑÐ] 260Çóµ÷¼Á +3 ÖìÜÆÁÕ 2026-03-20 4/200 2026-03-22 15:12 by ÖìÜÆÁÕ
[¿¼ÑÐ] 311Çóµ÷¼Á +3 Ó¸ҵÄСÎâ 2026-03-20 3/150 2026-03-21 17:40 by ColorlessPI
[¿¼ÑÐ] 303Çóµ÷¼Á +5 î£08 2026-03-17 7/350 2026-03-21 03:11 by JourneyLucky
[¿¼ÑÐ] 083200ѧ˶321·ÖÒ»Ö¾Ô¸ôßÄÏ´óѧÇóµ÷¼Á +3 innocenceF 2026-03-17 3/150 2026-03-21 02:35 by JourneyLucky
[¿¼ÑÐ] 085700×ÊÔ´Óë»·¾³308Çóµ÷¼Á +12 īīĮ 2026-03-18 13/650 2026-03-21 01:42 by JourneyLucky
[¿¼ÑÐ] ²ÄÁÏ 336 Çóµ÷¼Á +3 An@. 2026-03-18 4/200 2026-03-21 01:39 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸ÎäÀí²ÄÁÏ305·ÖÇóµ÷¼Á +6 ÏëÉϰ¶µÄÀðÓã 2026-03-18 7/350 2026-03-21 01:03 by JourneyLucky
[¿¼ÑÐ] 321Çóµ÷¼Á +9 ºÎÈó²É123 2026-03-18 11/550 2026-03-20 23:19 by JourneyLucky
[¿¼ÑÐ] 330Çóµ÷¼Á +4 С²Ä»¯±¾¿Æ 2026-03-18 4/200 2026-03-20 23:13 by JourneyLucky
[¿¼ÑÐ] ²ÄÁϹ¤³Ìר˶µ÷¼Á +5 204818@lcx 2026-03-17 6/300 2026-03-18 22:55 by 204818@lcx
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û