| ²é¿´: 150 | »Ø¸´: 0 | ||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | ||
[×ÊÔ´]
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ÊÇÒ»ÖÖ·þÎñÆ÷¶ËµÄ¼¼Êõ£¬Òò´Ë£¬ÔÚÊý¾ÝÓɿͻ§¶ËÏò·þÎñÆ÷¶Ë½øÐд«Êäʱ£¬Ëü²»Äܱ£Ö¤Êý¾ÝµÄ°²È«¡£ |
» ²ÂÄãϲ»¶
284Çóµ÷¼Á
ÒѾÓÐ10È˻ظ´
һ־Ըɽ¶«´óѧҩѧѧ˶Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
07»¯Ñ§280·ÖÇóµ÷¼Á
ÒѾÓÐ4È˻ظ´
298-Ò»Ö¾Ô¸Öйúũҵ´óѧ-Çóµ÷¼Á
ÒѾÓÐ12È˻ظ´
Çó²ÄÁÏ£¬»·¾³×¨Òµµ÷¼Á
ÒѾÓÐ3È˻ظ´
335Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ7È˻ظ´
Ò»Ö¾Ô¸¼ª´ó»¯Ñ§322Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
»·¾³Ñ§Ë¶288Çóµ÷¼Á
ÒѾÓÐ8È˻ظ´
341Çóµ÷¼Á(Ò»Ö¾Ô¸ºþÄÏ´óѧ070300)
ÒѾÓÐ6È˻ظ´













;
»Ø¸´´ËÂ¥