0x00
ǰÑÔ
ÌìÏÂÎ书£¬Î¨¿ì²»ÆÆ¡£µ«ÃÜÂë¼ÓÃܲ»Í¬¡£Ëã·¨Ô½¿ì£¬Ô½ÈÝÒ×ÆÆ¡£
0x01 ±©Á¦ÆÆ½â
ÃÜÂëÆÆ½â£¬¾ÍÊǰѼÓÃܺóµÄÃÜÂ뻹ԳÉÃ÷ÎÄÃÜÂë¡£ËÆºõÓв»ÉÙ·½·¨£¬µ«×îÖÕ¶¼µÃ×ßÒ»Ìõ·£º±©Á¦Çî¾Ù¡£
Ò²ÐíÄã»á˵»¹¿ÉÒÔ²é±í£¬Ë²¼ä¾Í³ö½á¹û¡£ËäÈ»²é±í²»ÓÃÇî¾Ù£¬µ«±íµÄÖÆÔì¹ý³ÌÈÔÈ»ÐèÒª¡£²é±íÖ»Êǽ«Çî¾ÙÌáǰÁ˶øÒÑ¡£
ÃÜÂë¼ÓÃÜ£¬ÓõͼÊǵ¥ÏòÉ¢ÁмÆËã¡£¼ÈÈ»µ¥Ïò£¬ÄǾÍÊDz»¿ÉÄæ£¬ÄÇÖ»ÄÜÇî¾Ù¡£
Çî¾ÙµÄÔÀíºÜ¼òµ¥¡£Ö»ÒªÖªµÀÃÜÎÄÊÇÓÃʲôËã·¨¼ÓÃܵģ¬ÎÒÃÇÒ²ÓÃÏàͬµÄËã·¨£¬°Ñ³£ÓõĴÊ×éÅÜÒ»±é¡£ÈôÓнá¹ûºÍÃÜÎÄÒ»Ñù£¬ÄǾͲÂÖÐÁË¡£
Çî¾ÙµÄËÙ¶ÈÓжà¿ì£¿ÕâºÍ¼ÓÃÜËã·¨Óйء£¼ÓÃÜÒ»´ÎÓжà¿ì£¬²ÂÒ»´ÎÒ²Õâô¿ì¡£
ÀýÈç MD5 ¼ÓÃÜÊǷdz£¿ìµÄ¡£¼ÓÃÜÒ»´ÎºÄ·Ñ 1 ΢Ã룬ÄÇÆÆ½âÊ±Ëæ±ã²ÂÒ»¸ö´Ê×飬ҲֻÐè 1 ΢Ã루¼ÙÉè»úÆ÷ÐÔÄÜÒ»Ñù£¬´Ê×鳤¶ÈÒ²²î²»¶à£©¡£¹¥»÷ÕßÒ»ÃëÖӾͿÉÒÔ²Â
100 Íò¸ö£¬¶øÇÒÕ⻹ֻÊǵ¥Ï̵߳ÄËÙ¶È¡£
ËùÒÔ£¬¼ÓÃÜËã·¨Ô½¿ì£¬ÆÆ½âÆðÀ´¾ÍÔ½ÈÝÒס£
0x02 Âý¼ÓÃÜ
Èç¹ûÄÜÌá¸ß¼ÓÃÜʱ¼ä£¬ÏÔȻҲÄÜÔö¼ÓÆÆ½âʱ¼ä¡£
Èç¹û¼ÓÃÜÒ»´ÎÌá¸ßµ½ 10 ºÁÃ룬ÄÇô¹¥»÷ÕßÿÃëÖ»Äܲ 100 ¸ö£¬ÆÆ½âËٶȾÍÂýÁËÒ»Íò±¶¡£
ÔõÑù²ÅÄÜÈüÓÃܱäÂý£¿×î¼òµ¥µÄ£¬¾ÍÊǶԼÓÃܺóµÄ½á¹ûÔÙ¼ÓÃÜ£¬Öظ´¶à´Î¡£
ÀýÈ磬Ա¾ 1 ΢ÃëµÄ¼ÓÃÜ£¬Öظ´Ò»Íò´Î£¬¾ÍÂýÒ»Íò±¶ÁË£º
function slow_md5(x) for i = 0 to 10000 x = md5(x) return x end |
¹¥»÷ÕßÆÆ½âʱ£¬Ò²±ØÐëÓÃÕâÌ×Ëã·¨ÅÜ×ֵ䡣ÓÚÊÇ£¬ÆÆ½âʱ¼ä¾Í´ó·ùÔö¼ÓÁË¡£
ÊÂʵÉÏ£¬ÕâÑùµÄ¡¸Âý¼ÓÃÜ¡¹Ëã·¨ÔçÒÑ´æÔÚ£¬ÀýÈç bcrypt¡¢PBKDF2 µÈµÈ¡£ËüÃǶ¼ÓÐÒ»¸öÄѶÈϵÊýÒò×Ó£¬¿ÉÒÔ¿ØÖƼÓÃÜʱ¼ä£¬Ïë¶àÂý¾Í¶àÂý¡£
¼ÓÃÜÔ½Âý£¬ÆÆ½âʱ¼äÔ½³¤¡£
0x03 Âý¼ÓÃÜÓ¦ÓÃ
×îÐèÒªÂý¼ÓÃܵij¡ºÏ£¬¾ÍÊÇÍøÕ¾Êý¾Ý¿âÀïµÄÃÜÂë¡£
½ü¼¸Ä꣬¾³£ÄÜÌýµ½ÍøÕ¾±»¡¸ÍϿ⡹µÄÐÂÎÅ¡£Óû§×ÊÁ϶¼ÊÇÃ÷ÎÄ´æ´¢£¬Ð¹Â¶ÁËÒ²ÎÞ·¨Íì»Ø¡£Î¨¶ÀÃÜÂ룬»¹¿ÉÒԺ͹¥»÷Õß¶Ô¿¹Ò»Ï¡£
È»¶ø²»ÉÙÍøÕ¾£¬Ê¹ÓõͼÊÇ¿ìËÙ¼ÓÃÜËã·¨£¬Òò´ËÇáÒ×¾ÍÄÜÆÆ½â³öÒ»¶ÑÈõ¿ÚÁîÕ˺š£
µ±È»£¬ÓÐʱֻÏëÆÆ½âij¸öÌØ¶¨ÈËÎïµÄÕ˺š£Ö»Òª²»ÊÇÌØ±ð¸´ÔӵĴʻ㣬ÅÜÉϼ¸Ì죬ºÜ¿ÉÄÜ¾ÍÆÆ³öÀ´¡£
µ«ÍøÕ¾ÓÃÁËÂý¼ÓÃÜ£¬½á¹û¿ÉÄܾͲ»Ò»ÑùÁË¡£Èç¹û°Ñ¼ÓÃÜʱ¼äÌá¸ß 100 ±¶£¬ÆÆ½âʱ¼ä¾ÍµÃ³¤´ïÊýÔ£¬±äµÃÄÑÒÔ½ÓÊÜ¡£
¼´Ê¹Êý¾Ýй¶£¬Ò²Äܱ£ÕÏ¡¸ÃÜÂ롹Õâ×îºóÒ»µÀÒþ˽¡£
0x04 Âý¼ÓÃÜȱµã
²»¹ý£¬Âý¼ÓÃÜÒ²ÓÐÃ÷ÏÔµÄȱµã£ºÏûºÄ´óÁ¿¼ÆËã×ÊÔ´¡£
ʹÓÃÂý¼ÓÃܵÄÍøÕ¾£¬Èç¹ûͬʱÀ´Á˶à¸öÓû§£¬·þÎñÆ÷ CPU ¿ÉÄܾͲ»¹»ÓÃÁË¡£ÒªÊÇÓöµ½¶ñÒâÓû§£¬·¢Æð´óÁ¿µÄµÇ¼ÇëÇó£¬ÉõÖÁÔì³É×ÊÔ´±»ºÄ¾¡¡£
ÐÔÄܺͰ²È«×ÜÊÇÄÑÒÔ¼æµÃ¡£ËùÒÔ£¬Ò»°ãÒ²²»»áʹÓÃÌ«¸ßµÄÇ¿¶È¡£
һЩ´óÐÍÍøÕ¾£¬ÉõÖÁΪ´ËͶÈ뼯Ⱥ£¬ÓÃÀ´´¦Àí´óÁ¿µÄ¼ÓÃܼÆËã¡£µ«ÕâÐèÒª²»Éٵijɱ¾¡£
ÓÐûÓÐʲô·½·¨£¬¿ÉÒÔÈÃÎÒÃÇʹÓÃËãÁ¦Ç¿¾¢¡¢Í¬Ê±ÓÖÃâ·ÑµÄ¼ÆËã×ÊÔ´£¿
0x05 ǰ¶Ë¼ÓÃÜ
ÔÚ¹ýÈ¥£¬¸öÈ˵çÄԺͷþÎñÆ÷µÄËÙ¶È£¬»¹ÊÇÓнϴó²î¾àµÄ¡£µ«Èç½ñ£¬Ëæ×ÅÓ²¼þ·¢Õ¹½øÈëÆ¿¾±£¬Õâ¸ö²î¾àÕýËõС¡£ÔÚµ¥ÏßÈÎÎñ´¦ÀíÉÏ£¬ÉõÖÁ²»ÏàÉÏÏ¡£
¿Í»§¶ËÓµÓÐÇ¿´óµÄËãÁ¦£¬Äܲ»ÄÜ·Öµ£Ò»Ð©·þÎñÆ÷µÄ¹¤×÷£¿
ÓÈÆäÏñ¡¸Âý¼ÓÃÜ¡¹ÕâÖÖËã·¨¿ªÔ´¡¢µ«¼ÆËã³ÁÖØµÄÈÎÎñ£¬ÎªºÎ²»½»¸ø¿Í»§¶ËÀ´Íê³É£¿

¹ýÈ¥£¬Ìá½»µÄÊÇÃ÷ÎÄÃÜÂ룻ÏÖÔÚ£¬Ìá½»µÄÔòÊÇÃ÷ÎÄÃÜÂëµÄ¡¸Âý¼ÓÃܽá¹û¡¹¡£ÎÞÂÛÊÇ×¢²á£¬»¹Êǵǽ¡£
¶ø·þÎñ¶Ë£¬ÎÞÐèÈκθ͝¡£½«ÊÕµ½µÄ¡¸Âý¼ÓÃܽá¹û¡¹£¬µ±×öÔÀ´µÄÃ÷ÎÄÃÜÂë ¾ÍÐС£ÒÔǰÊÇÔõô±£´æµÄ£¬ÏÖÔÚ»¹ÊÇÔõô±£´æ¡£
ÕâÑù¾ÍËã±»ÍϿ⣬¹¥»÷ÕßÆÆ½â³öÀ´µÄÒ²Ö»ÊÇ¡¸Âý¼ÓÃܽá¹û¡¹£¬»¹ÐèÔÙÆÆ½âÒ»´Î£¬²ÅÄÜ»¹Ô³ö¡¸Ã÷ÎÄÃÜÂ롹¡£

ÊÂʵÉÏ£¬¡¸Âý¼ÓÃܽá¹û¡¹Õâ¸öÖмäÖµ£¬ÊDz»¿ÉÄÜÆÆ½â³öÀ´µÄ£¡
ÒòΪËüÊÇÒ»¸öÉ¢ÁÐÖµ ¡ª¡ª ºÁÎÞ¹æÂɵÄËæ»ú´®£¬ÀýÈç 32 λʮÁù½øÖÆ×Ö·û´®£¬¶ø×ֵ䶼ÊÇÓÐÒâÒåµÄ´Ê×飬¼¸ºõ²»¿ÉÄÜÅܵ½Ëü£¡
³ý·Ç×Ö½ÚÖð¸öÇî¾Ù¡£µ«ÕâÓÐ 16^32 ÖÖ×éºÏ£¬ÊǸöÌìÎÄÊý×Ö¡£
ËùÒÔÖмäÖµ£¬ÊÇÎÞ·¨Í¨¹ýÊý¾Ý¿âй¶µÄÃÜÎÄ¡¸ÅÜ¡¹³öÀ´µÄ¡£
²»¹ý£¬¼´Ê¹²»ÖªµÀÕâ¸öÖмäÖµ£¬Ò²Ã»¹ØÏµ¡£¹¥»÷Õß¿ÉÒÔ°Ñǰºó¶ËµÄ hash Ëã·¨£¬×éºÏ³ÉÒ»¸öеģº
f(x) = back_fast_hash( front_slow_hash(x) ) |
È»ºóÓÃÕâ¸öÐÂËã·¨£¬À´ÅÜ×ֵ䡣ÕâÑù£¬ÀíÂÛÉÏ»¹ÊÇ¿ÉÒÔÅܳöÀ´µÄ¡£
µ«ÊÇ£¬ÆäÖÐÓÐ front_slow_hash Õâ¸öÕϰ£¬ÅܵÄËÙ¶È£¬¾Í´ó·ù½µµÍÁË¡£
ÓÚÊǾÍÄÜÔö¼Ó¹¥»÷ÕßµÄÆÆ½â³É±¾¡£
0x06 ¶Ô¿¹Ô¤ÏȼÆËã
²»¹ý£¬Ç°¶ËµÄÒ»Çж¼Êǹ«¿ªµÄ¡£ËùÒÔ front_slow_hash µÄËã·¨´ó¼Ò¶¼ÖªµÀ¡£
¹¥»÷Õß¿ÉÒÔÓÃÕâÌ×Ëã·¨£¬°Ñ³£ÓôÊ×éµÄ¡¸Âý¼ÓÃܽá¹û¡¹ÌáǰËã³öÀ´£¬ÖÆ×÷³ÉÒ»¸ö¡¸ÐÂ×ֵ䡹¡£½«À´ÍÏ¿âºó£¬¾Í¿ÉÒÔÖ±½ÓÅÜÕâ¸öÐÂ×ÖµäÁË¡£
¶Ô¿¹ÕâÖÖ·½·¨£¬»¹µÃÓþµäµÄÊֶΣº¼ÓÑΡ£×î¼òµ¥µÄ£¬½«Óû§Ãû×÷ΪÑÎÖµ£º
front_slow_hash(password, username) |
ÕâÑù£¬¼´Ê¹ÏàͬµÄÃÜÂ룬¶ÔÓÚ²»Í¬µÄÓû§£¬¡¸Âý¼ÓÃܽá¹û¡¹Ò²²»Ò»ÑùÁË¡£
Ò²ÐíÄã»á˵£¬Õâ¸öÑÎÖµ²»ºÏÀí£¬ÒòΪÓû§ÃûÊǹ«¿ªµÄ¡£¹¥»÷Õß¿ÉÒÔ¶Ôij¸öÖØÒªÈËÎïµÄÕ˺ţ¬µ¥¶ÀΪËû½¨Á¢Ò»¸ö×ֵ䡣
ÄÇô£¬ÊÇ·ñ¿ÉÒÔÌṩһ¸öÒþ±ÎµÄÑÎÖµ£¿´ð°¸ÊÇ£º²»¿ÉÒÔ¡£
ÒòΪÕâÊÇÔÚǰ¶Ë¡£Óû§»¹Ã»µÇ¼£¬ÄÇ·µ»ØËµÄÑÎÖµ£¿µÇ½ǰ¾ÍÄÜ»ñµÃÕ˺ŵÄÑÎÖµ£¬Õâ²»»¹Êǹ«¿ªµÄÂð¡£
ËùÒÔ£¬Ç°¶Ë¼ÓÃܵÄÑÎÖµÎÞ·¨Òþ²Ø£¬Ö»Äܹ«¿ª¡£
µ±È»£¬¼´Ê¹¹«¿ª£¬µ¥¶ÀÌṩһ¸öÑÎÖµ²ÎÊý£¬Ò²±ÈÓû§ÃûÒªºÃ¡£ÒòΪÓû§ÃûÓÀÔ¶²»±ä£¬¶ø¶ÀÁ¢µÄÑÎÖµ¿ÉÒÔ¶¨ÆÚ¸ü»»¡£
ÑÎÖµ¿ÉÒÔÓÉǰ¶ËÉú³É¡£ÀýÈç×¢²áʱ£º
# ǰ¶ËÉú³ÉÑÎÖµ salt = rand() password = front_slow_hash(password, salt)
# Ìύʱ´øÉÏÑÎÖµ submit(..., password, salt) |
ºó¶Ë½«Óû§µÄÑÎÖµÒ²´¢´æÆðÀ´¡£
µÇ¼ʱ£¬ÊäÍêÓû§Ãû£¬¾Í¿ÉÒÔ¿ªÊ¼²éѯÓû§¶ÔÓ¦µÄÑÎÖµ£º

ÑÎÖµµÄ¸ü»»£¬Ò²·Ç³£¼òµ¥£¬ÉõÖÁ¿ÉÒÔ×Ô¶¯Íê³É£º

ǰ¶ËÔÚ¼ÓÃܵ±Ç°ÃÜÂëʱ£¬Í¬Ê±¿ªÆôÒ»¸öÐÂỊ̈߳¬¼ÆËãÐÂÑÎÖµºÍÐÂÃÜÂë¡£Ìύʱ£¬½«ËüÃÇÈ«¶¼´øÉÏ¡£
Èç¹û¡¸µ±Ç°ÃÜÂ롹ÑéÖ¤³É¹¦£¬ÔòÓá¸ÐÂÃÜÂ롹ºÍ¡¸ÐÂÑÎÖµ¡¹¸²¸Ç¾ÉµÄ¡£
ÕâÑù¸ü»»ÑÎÖµ£¬»¹ÊÇÖ»Óõ½Ç°¶ËµÄËãÁ¦¡£
ÕâÒ»Çж¼ÊÇ×Ô¶¯µÄ£¬Ï൱ÓÚ ÔÚÓû§ÎÞ¸ÐÖªµÄÇé¿öÏ£¬¶¨ÆÚ°ïËû¸ü»»ÃÜÂ룡
ÃÜÎıäÁË£¬Õë¶Ô¡¸Ìض¨ÑÎÖµ¡¹ÖÆ×÷µÄ×ֵ䣬Ҳ¾ÍʧЧÁË¡£¹¥»÷ÕßµÃÖØÐÂÖÆ×÷Ò»´Î¡£
0x07 Ç¿¶È²ßÂÔ
ÃÜÂëѧÉϵÄÎÊÌâµ½´Ë½áÊø£¬ÏÂÃæÌÖÂÛʵÏÖÉϵÄÎÊÌâ¡£
ÏÖʵÖУ¬Óû§µÄËãÁ¦ÊDz»¾ùºâµÄ¡£ÓÐÈËÓõÄÊÇÉñ¼¶ÅäÖã¬Ò²ÓеÄÊǹŶ»ú¡£ÕâÑù£¬¼ÓÃÜÇ¿¶È¾ÍºÜÄÑÉ趨¡£
Èç¹û¹Å¶»úÓû§µÇ¼»á¿¨Éϼ¸Ê®Ã룬Äǿ϶¨ÊDz»Ðеġ£¶ÔÓÚÕâÖÖÇé¿ö£¬Ö»ÓÐÒÔÏÂÑ¡Ôñ£º
Ç¿¶È¹Ì¶¨
Ç¿¶È¿É±ä
1.Ç¿¶È¹Ì¶¨
¸ù¾Ý´óÖÚµÄÅäÖã¬Öƶ¨Ò»¸öÊÊÖеÄÇ¿¶È£¬¾ø´ó¶àÊýÓû§¶¼¿É½ÓÊÜ¡£
µ«Èç¹û³¬¹ý¹æ¶¨Ê±¼ä»¹Ã»Íê³É£¬¾Í°ÑËãµ½Ò»°ëµÄ Hash ºÍ²½ÊýÌá½»ÉÏÀ´£¬Ê£Óಿ·ÖÈ÷þÎñÆ÷À´Íê³É¡£
[ǰ¶Ë] Íê³É 70% ----> [ºó¶Ë] ¼ÆËã 30% |
²»¹ý£¬ÕâÐèÒª¡¸¿ÉÐòÁл¯¡¹µÄËã·¨£¬²ÅÄÜÔÚ·þÎñ¶Ë»¹Ô½ø¶È¡£Èç¹û¼ÆËãÖлáÓдóÁ¿µÄÁÙʱÄڴ棬ÕâÖÖ·½°¸¾Í²»¿ÉÐÐÁË¡£
Ïà±È¹ýÈ¥ 100% ºó¶ËÂý¼ÓÃÜ£¬ÕâÖÖÉÙÁ¿Óû§¡¸Ç°ºó²Î°ë¡¹µÄ·½Ê½£¬¿ÉÒÔ½ÚÊ¡²»ÉÙ·þÎñÆ÷×ÊÔ´¡£
¶ÔÓÚÇëÇóÐÖúµÄÓû§£¬Ò²±ØÐëÓÐÒ»¶¨µÄÏÞÖÆ£¬·ÀÖ¹¶ñÒâ͸֧·þÎñÆ÷×ÊÔ´¡£
2.Ç¿¶È¿É±ä
Èç¹ûºó¶Ë²»ÌṩÈκÎÐÖú£¬ÄÇÖ»Äܸù¾Ý×ÔÉíÌõ¼þ×öÈ¡ÉáÁË¡£ÅäÖòîµÄÓû§£¬¾ÍÉÙ¼ÓÃÜÒ»µã¡£
Óû§×¢²áʱ£¬¼ÓÃÜËã·¨²»ÏÞ²½Êý·Å¿ªÅÜ£¬¿´¿´Ìض¨Ê±¼äÀïÄÜËãµ½¶àÉÙ²½£º
# [×¢²á½×¶Î] ËãÁ¦ÆÀ¹À£¨Ïß³Ì 1 ÃëºóÖÐÖ¹£© while x = hash(x) step = step + 1 end |
Õâ¸ö²½Êý£¬¾ÍÊǼÓÃÜÇ¿¶È£¬»á±£´æµ½ËûµÄÕ˺ÅÐÅÏ¢Àï¡£
ºÍÑÎÖµÒ»Ñù£¬Ç¿¶ÈÒ²Êǹ«¿ªµÄ¡£ÒòΪÔڵǼʱ£¬Ç°¶Ë¼ÓÃÜÐèÒªÖªµÀÕâ¸öÇ¿¶ÈÖµ¡£
# [µÇ¼½×¶Î] ÏÈ»ñµÃ step for i = 0 to step x = hash(x) end |
Õâ¸ö·½°¸£¬¿ÉÒÔÈøßÅäÖõÄÓû§ÏíÊܸü¸ßµÄ°²È«ÐÔ£»µÍÅäÖõÄÓû§£¬Ò²²»»áÓ°Ïì»ù±¾Ê¹Óᣣ¨ÓÃÉϺõçÄÔ»¹ÄÜÌáÉý°²È«ÐÔ£¬ºÜÓÐÓÅÔ½¸Ð°É~£©
µ«ÕâÓиöÖØÒªµÄǰÌ᣺ע²áºÍµÇ¼£¬±ØÐëÔÚÐÔÄÜÏà½üµÄÉ豸ÉÏ¡£
Èç¹ûÊÇÔÚ¸ßÅäÖõçÄÔÉÏ×¢²áµÄÕ˺ţ¬Ä³ÌìÈ¥¹Å¶»úµÇ¼£¬ÄǾͱ¯¾çÁË£¬¿ÉÄܰëÌì¶¼Ëã²»³öÀ´¡£¡£¡£
3.¶¯Ì¬µ÷Õû·½°¸
ÉÏÊöÇé¿ö£¬ÏÖʵÖÐÊÇÆÕ±é´æÔڵġ£±ÈÈç PC ¶Ë×¢²áµÄÕ˺ţ¬ÔÚÒÆ¶¯¶ËµÇ¼£¬ËãÁ¦¿ÉÄܾͲ»¹»Óá£
Èç¹ûûÓкó¶ËÐÖú£¬ÄÇÖ»Äܵȡ£ÒªÊǾ³£ÔڵͶËÉ豸Éϵǽ£¬ÄÇÿ´Î¶¼µÃ¸ÉµÈÂð£¿
µÈÒ»Á½´Î¾ÍËãÁË£¬Èç¹ûÿ´Î¶¼µÈ£¬²»ÈçÖØÐ¹ÀÁ¿ÏÂ×Ô¼ºµÄÄÜÁ¦°É¡£°Ñ¼ÓÃÜÇ¿¶È¶¯Ì¬µ÷µÍ£¬¸üºÃµÄÊÊÓ¦µ±Ç°»·¾³¡£
½«À´Èç¹û²»ÓõͶËÉ豸ÁË£¬ÔÙ×Ô¶¯µÄµ÷Õû»ØÀ´¡£ÈüÓÃÜÇ¿¶È£¬Äܶ¯Ì¬ÊÊÓ¦³£ÓõÄÉ豸µÄËãÁ¦¡£
ʵÏÖÔÀí£¬ºÍÉÏÒ»½ÚµÄ×Ô¶¯¸ü»»ÑÎÖµÀàËÆ¡£
4.ÒìÏëÌ쿪·½°¸
ÏÂÃæ YY Ò»¸öÄÔ¶´´ó¿ªµÄ·½°¸£¬Ç°ÌáÊÇÍøÕ¾ÓÐ×ã¹»´óµÄ·ÃÎÊÁ¿¡£
Èç¹ûµ±Ç°ÓкܶàÔÚÏßÓû§£¬ËüÃDz»¾ÍÊÇÒ»¶ÑÃâ·ÑµÄ¼ÆËã½ÚµãÂ𣿼ÆËãÁ¿´óµÄÎÊÌ⣬ÈÓ¸øËûÃÇÀ´½â¾ö¡£

²»¹ýÕâÑù×öÒ²ÓÐһЩÒÉÂÇ£¬ÍòÒ»ÕýºÃÍÆË͸øÁË»µÈËÔõô°ì£¿
ÏÔÈ»£¬²»ÄܰÑÌ«¶àµÄÃô¸ÐÊý¾Ý·Å³öÈ¥¡£½ÚµãÖ»¹Ü¼ÆË㣬ÍêÈ«²»ÓÃÖªµÀ¡¢Ò²²»ÄÜÖªµÀÕâ¸öÈÎÎñµÄ×îÖÕÄ¿µÄ¡£
µ«ÊÇ£¬Èç¹ûÓöµ½¶ñ×÷¾ç½Úµã£¬¹ÊÒâ°ÑÊý¾ÝËã´íÔõô°ì£¿
ËùÒÔ²»ÄÜÖ»ÍÆË͸øÒ»¸ö½Úµã¡£¶àÑ¡¼¸¸ö£¬×îÖÕ½á¹ûÒ»Ö²ÅËãÕýÈ·¡£ÕâÑù·çÏÕ¸ÅÂʾͽµµÍÁË¡£
Ïà±È P2P ¼ÆËã£¬ÍøÕ¾ÊÇÓÐÖÐÐÄ¡¢ÊµÃûµÄ£¬¹ÜÀíÆðÀ´»áÈÝÒ×һЩ¡£¶ÔÓÚ¶ñ×÷¾çÓû§£¬¿ÉÒÔ½øÐгͷ££»²ÎÓë¹ý°ïÖúµÄÓû§£¬Ò²¸øÓèÒ»¶¨½±Àø¡£
ÏëÏó¾Íµ½´Ë£¬¼ÌÐøÌÖÂÛʵ¼ÊµÄ¡£
0x08 ÐÔÄÜÓÅ»¯
1.ΪʲôҪÓÅ»¯
»òÐíÄã»áÎÊ£¬¡¸Âý¼ÓÃÜ¡¹²»¾ÍÊÇÏ£Íû¼ÆËã¸üÂýÂð£¬ÎªÊ²Ã´»¹ÒªÈ¥ÓÅ»¯£¿
¼ÙÈçÕâÊÇÒ»¸ö×Ô´´µÄÒþ±ÎʽËã·¨£¬²¢ÇÒ»ìÏýµ½ÍâÈ˸ù±¾ÎÞ·¨¶Á¶®£¬ÄDz»ÓÅ»¯Ò²Ã»Ê¡£ÉõÖÁ¿ÉÒÔÔÚÀïÃæ·ÅһЩ¿ÕÑ»·£¬¹ÊÒâÏûºÄʱ¼ä¡£
µ«ÊÂʵÉÏ£¬ÎÒÃÇÑ¡ÔñµÄ¿Ï¶¨ÊÇ¡¸ÃÜÂëѧ¼ÒÍÆ¼ö¡¹µÄ¹«¿ªËã·¨¡£ËüÃÇÿһ¸ö²Ù×÷£¬¶¼ÊÇÓÐÊýѧÉϵÄÒâÒåµÄ¡£
Ô±¾Ò»¸ö²Ù×÷Ö»ÐèÒ»Ìõ CPU Ö¸ÁÒòΪ²»¹»ÓÅ»¯£¬ÓÃÁËÁ½ÌõÖ¸ÁÄÇô¶îÍâµÄʱ¼ä¾ÍÊÇÄںġ£µ¼Ö¼ÓÃÜÓÃʱ¸ü¾Ã£¬Ç¿¶ÈȴδÌáÉý¡£
2.ǰ¶Ë¼ÆËãÈíÀß
Èç¹ûÊDZ¾µØ³ÌÐò£¬¸ù±¾²»Óÿ¼ÂÇÕâ¸öÎÊÌ⣬½»¸ø±àÒëÆ÷¾ÍÐС£
µ«ÔÚ Web »·¾³ÀÎÒÃÇÖ»ÄÜÓÃä¯ÀÀÆ÷¼ÆË㣡Ïà±È±¾µØ³ÌÐò£¬½Å±¾ÒªÂýµÄ¶à£¬Òò´ËÄںĻáºÜ´ó¡£
½Å±¾ÎªÊ²Ã´Âý£¿Ö÷Òª»¹ÊÇÕ⼸µã£º
ÈõÀàÐÍ
½âÊÍÐÍ
ɳÏä
3.ÈõÀàÐÍ
½Å±¾£¬ÊÇÓÃÀ´´¦Àí¼òµ¥Âß¼µÄ£¬²¢²»ÊÇÓÃÀ´Ãܼ¯¼ÆËãµÄ£¬ËùÒÔû±ØÒªÇ¿ÀàÐÍ¡£
²»¹ýÈç½ñÓÐÁËÒ»¸öºÚ¿Æ¼¼£ºasm.js¡£ËüÄÜͨ¹ýÓï·¨ÌÇ£¬Îª JS Ìá¹©ÕæÕýµÄÇ¿ÀàÐÍ¡£
ÕâÑù¼ÆËãËٶȾʹó·ùÌáÉýÁË£¬¿ÉÒÔ½Ó½ü±¾µØ³ÌÐòµÄÐÔÄÜ£¡
µ«ÊDz»Ö§³Ö asm.js µÄä¯ÀÀÆ÷Ôõô°ì£¿ÀýÈ磬¹úÄÚ»¹ÓдóÁ¿µÄ IE Óû§£¬ËûÃǵÄËãÁ¦ÊǷdz£µÍµÄ¡£
ºÃÔÚ»¹Óиöºó²¹·½°¸ ¡ª¡ª Flash£¬ËüÓи÷ÖÖ¸ßÐÔÄÜÓïÑÔµÄÌØÕ÷¡£ÀàÐÍ£¬×ÔÈ»²»ÔÚ»°Ï¡£
Ïà±È asm.js£¬Flash »¹ÊÇÒªÂýһЩ£¬µ«±È IE »¹ÊÇ¿ì¶àÁË¡£
4.½âÊÍÐÍ
½âÊÍÐÍÓïÑÔ£¬²»½öÐèÒªÓï·¨·ÖÎö£¬¸üÊÇʧȥÁË¡¸±àÒëʱÉî¶ÈÓÅ»¯¡¹´øÀ´µÄÐÔÄÜÌáÉý¡£
ºÃÔÚ Mozilla ÌṩÁËÒ»¸ö¿ÉÒÔ´Ó C/C++ ±àÒë³É asm.js µÄ¹¤¾ß£ºemscripten¡£
ÓÐÁËËü£¬¾Í²»ÓÃÂãдÁË¡£¶øÇÒ±àÒëʱ¾¹ý LLVM µÄÓÅ»¯£¬Éú³ÉµÄ´úÂëÖÊÁ¿»á¸ü¸ß¡£
ÊÂʵÉÏ£¬Õâ¸ö¸ÅÄîÔÚ Flash ÀïÔçÓÐÁË¡£
Ôø¾Óиö½Ð Alchemy µÄ¹¤¾ß£¬ÄÜ°Ñ C/C++ ½»²æ±àÒë³É Flash ÐéÄâ»úÖ¸ÁËÙ¶È±È ActionScript
¿ì²»ÉÙ¡£
Alchemy ÏÖÔÚ¸ÄÃû FlasCC£¬»¹ÓпªÔ´°æµÄ crossbridge
5.ɳÏä
һЩ±¾µØÓïÑÔ¿´Ëƺܼòµ¥µÄ²Ù×÷£¬ÔÚɳÏäÀï¾Íδ±ØÈç´Ë¡£ÀýÈçÊý×é²Ù×÷£º
ÐéÄâ»úÊ×Ïȵüì²éË÷ÒýÊÇ·ñÔ½½ç£¬·ñÔò»áÓÐÑÏÖØµÄÎÊÌâ¡£
Èç¹û¡¸Ç°¶ËÂý¼ÓÃÜ¡¹Ëã·¨Éæ¼°µ½´óÁ¿ÄÚ´æËæ»ú·ÃÎÊ£¬ÄǾͻáÓкܶàÎÞÒâÒåµÄÄںģ¬Òò´ËµÃÉ÷ÖØ¿¼ÂÇ¡£
²»¹ýÓÐÐ©ÌØÊⳡºÏ£¬½Å±¾ËÙ¶ÈÉõÖÁÄܳ¬¹ý±¾µØ³ÌÐò£¡ÀýÈ翪ͷÌáµ½µÄ MD5 ´óÁ¿·´¸´¼ÆËã¡£
ÕâÆäʵ²»ÄѽâÊÍ£º
Ê×ÏÈ£¬MD5 Ëã·¨ºÜ¼òµ¥¡£Ã»Óвé±íÕâÑùµÄÄÚ´æ²Ù×÷£¬Ê¹ÓõͼÊǾֲ¿±äÁ¿¡£¾Ö²¿±äÁ¿µÄλÖö¼Êǹ̶¨µÄ£¬±ÜÃâÁËÔ½½ç¼ì²é¿ªÏú¡£
Æä´Î£¬emscripten µÄÓÅ»¯ÄÜÁ¦£¬²¢²»±È±¾µØ±àÒëÆ÷²î¡£
×îºó£¬±¾µØ³ÌÐò±àÒëÖ®ºó£¬»úÆ÷Ö¸Áî¾Í²»»áÔÙ±äÁË£»¶øÈç½ñ½Å±¾ÒýÇæ£¬¶¼ÓÐ JIT Õâ¸öÀûÆ÷¡£Ëü»á¸ù¾ÝÔËÐÐʱµÄÇé¿ö£¬ÊµÊ±Éú³É¸üÓÅ»¯µÄ»úÆ÷Ö¸Áî¡£
ËùÒÔÑ¡Ôñ¼ÓÃÜË㷨ʱ£¬»¹µÃ¼æ¹Ëʵ¼ÊÔËÐл·¾³£¬Ñﳤ±Ü¶Ì£¬·¢»Ó³ö×î´ó¹¦Ð§¡£
0x09 ¶Ô¿¹ GPU
ÖÚËùÖÜÖª£¬ÅÜÃÜÂëʹÓà GPU ¿ÉÒÔ¿ìºÜ¶à±¶¡£
GPU ¿ÉÒÔÏëÏó³ÉÒ»¸öÓм¸°ÙÉÏǧºËµÄ´¦ÀíÆ÷£¬µ«Ö»ÄÜÖ´ÐÐһЩ¼òµ¥µÄÖ¸Áî¡£ËäÈ»µ¥ºËËٶȲ»¼° CPU£¬µ«¿ÉÒÔͨ¹ýÊýÁ¿È¡Ê¤¡£
±©Á¦Çî¾Ùʱ£¬¿ÉÒÔ´Ó×ÖµäÀïÈ¡³öÉÏǧ¸ö´Ê»ãͬʱÅÜ£¬ÆÆ½âЧÂʾÍÌá¸ßÁË¡£
ÄÇÄÜ·ñÔÚËã·¨ÀïÌí¼ÓÒ»Ð©ÌØÕ÷£¬ÕýºÃÃüÖÐ GPU µÄÈíÀßÄØ£¿
1.ÏÔ´æÆ¿¾±
´ó¼ÒÌý¹ý˵¡¸À³Ìرҡ¹°É¡£²»Í¬ÓÚ±ÈÌØ±Ò£¬À³ÌرÒÍÚ¿óʹÓÃÁË scrypt Ëã·¨¡£
ÕâÖÖËã·¨¶ÔÄÚ´æÒÀÀµ·Ç³£´ó£¬ÐèҪƵ·±¶Áдһ¸ö±í¡£GPU ËäȻÿ¸öÏ̶߳¼ÄܶÀÁ¢¼ÆË㣬µ«ÏÔ´æÖ»ÓÐÒ»¸ö£¬´ó¼Ò¹²ÏíʹÓá£
ÕâÒâζ×Å£¬Í¬Ê±Ö»ÓÐÒ»¸öÏß³ÌÄܲÙ×÷ÏԴ棬ÆäËûÓÐÐèÒªµÄÖ»ÄܵȴýÁË¡£ÕâÑù£¬¾Í¼«´ó¶ôÖÆÁ˲¢·¢µÄÓÅÊÆ¡£
2.ÒÆÖ²ÄѶÈ
ɽկ±Ò±éµØ¿ª»¨µÄʱºò£¬»¹³öÏÖÁËÒ»¸ö½Ð X11Coin µÄ±Ò£¬¾Ý³ÆÄܶԿ¹ ASIC¡£
ËüµÄÔÀíºÜ¼òµ¥£¬ÀïÃæ²ôÔÓÁË 11 ÖÖ²»Í¬µÄ¼ÓÃÜËã·¨¡£ÕâÑù£¬ÖÆÔì³öÏàÓ¦µÄ ASIC ¸´ÔÓ¶È´ó·ùÔö¼ÓÁË¡£
¾¡¹ÜÕâ²»ÊÇÒ»¸ö³¤¾ÃµÄ¶Ô¿¹·½°¸£¬µ«Ë¼Â·»¹ÊÇ¿ÉÒÔ½è¼øµÄ¡£Èç¹ûÒ»¼þʹýÓÚ¸´ÔÓ£¬ºÜ¶à¹¥»÷Õß¾ÍÍû¶øÉúηÁË£¬²»ÈçÈ¥×ö¸üÈÝÒ×µ½ÊÖµÄÊ¡£
3.ÆäËûÏë·¨
Ö®ËùÒÔ GPU ÄÜ´óÐÐÆäµÀ£¬ÊÇÒòΪĿǰµÄ¼ÓÃÜËã·¨£¬¶¼ÊǼòµ¥µÄ¹«Ê½ÔËËã¡£Õâ¶Ô CPU ²¢Ã»Ì«´óµÄÓÅÊÆ¡£
ÄÜ·ñÉè¼ÆÒ»¸öËã·¨£¬³ä·ÖÒÀÀµ CPU µÄÓÅÊÆ£¿
CPU ÓкܶàÒþ²ØµÄÇ¿ÏÀýÈçÁ÷Ë®Ïß¡£Èç¹ûËã·¨ÖÐÓдóÁ¿µÄÌõ¼þ·ÖÖ§£¬Ò²Ðí GPU ¾Í²»Éó¤ÁË¡£
µ±È»£¬ÕâÀïÖ»ÊÇÉèÏë¡£×Ô¼º´´Ôì¼ÓÃÜËã·¨£¬ÊǷdz£À§Äѵģ¬Ò²²»ÍƼöÕâô×ö¡£
0x0A ¶îÍâÒâÒå
³ýÁËÄܽµµÍÃÜÂëÆÆ½âËÙ¶È£¬Ç°¶ËÂý¼ÓÃÜ»¹ÓÐһЩÆäËûÒâÒ壺
1.¼õÉÙй¶·çÏÕ
Óû§ÊäÈëµÄÃ÷ÎÄÃÜÂ룬ÔÚǰ¶ËÄÚ´æÀï¾ÍÒѼÓÃÜ¡£À뿪ä¯ÀÀÆ÷£¬Ð¹Â¶·çÏÕ¾ÍÒѽáÊø¡£
¼´Ê¹Í¨Ðű»ÇÔÌý£¬»òÊÇ·þÎñÆ÷ÉϵĶñÒâÖмä¼þ£¬¶¼ÎÞ·¨Äõ½Ã÷ÎÄÃÜÂë¡£
³ý·ÇÍøÒ³±¾ÉíÓжñÒâ´úÂ룬»òÊÇÓû§ÏµÍ³´æÔÚ¶ñÒâÈí¼þ¡£
2.ÎÞ·¨Ë½²ØÃ÷ÎÄ
¾¡¹Ü´ó²¿·ÖÍøÕ¾¶¼Éù³Æ£¬²»»á´æ´¢Óû§µÄÃ÷ÎÄÃÜÂë¡£µ«ÕⲢûÓÐÖ¤¾Ý£¬Ò²Ðí˽ÏÂÀïÈÔÔÚÇÄÇÄ´¢´æ¡£
Èç¹ûÔÚǰ¶Ë¼ÓÃÜ£¬ÍøÕ¾¾ÍÎÞ·¨Äõ½Óû§µÄÃ÷ÎÄÃÜÂëÁË¡£
Ò²ÐíÕýÊÇÕâÒ»µã£¬ºÜ¶àÍøÕ¾²»Ô¸ÒâʹÓÃǰ¶Ë¼ÓÃÜ¡£
ÊÂʵÉÏ£¬ÆäÊµÍøÕ¾²»Ô¸ÒâҲû¹ØÏµ£¬ÎÒÃÇ¿ÉÒÔ×Ô¼º×öÒ»¸öµ¥»ú°æµÄÂý¼ÓÃܲå¼þ¡£
µ±Ñ¡ÖÐÍøÒ³ÃÜÂë¿òʱ£¬µ¯³öÎÒÃDzå¼þ¡£ÔÚ²å¼þÀïÊäÈëÃÜÂëºó£¬¿ªÊ¼Âý¼ÓÃܼÆËã¡£×îºó½«½á¹ûÌîÈëÒ³ÃæÃÜÂë¿òÀï¡£
ÕâÑù£¬ËùÓеÄÍøÕ¾¶¼¿ÉÒÔʹÓÃÁË¡£µ±È»£¬ÒÑ×¢²áµÄÕ˺ÅÊDz»Ðе쬵ÃÊÖ¶¯µ÷Õûһϡ£
3.Ôö¼Óײ¿â³É±¾
¡¸Ç°¶ËÂý¼ÓÃÜ¡¹ÐèÒªÏûºÄÓû§µÄ¼ÆËãÁ¦£¬Õâ¸öȱµãÓÐʱҲÊǼþºÃÊ¡£
¶ÔÓÚÕý³£Óû§À´Ëµ£¬µÇ¼ʱ¶àµÈÒ»ÃëÓ°Ïì²¢²»´ó¡£µ«¶ÔÓÚÆµ·±µÇ¼µÄÓû§À´Ëµ£¬Õâ¾ÍÊÇÒ»¸öÕϰÁË¡£
Ë»áÆµ·±µÇ¼£¿Ò²Ðí¾ÍÊÇײ¿â¹¥»÷Õß¡£ËûÃÇÎÞ·¨ÍÏÏÂÕâ¸öÍøÕ¾µÄÊý¾Ý¿â£¬ÓÚÊǾÍÓÃÔÚÏߵǼµÄ·½Ê½£¬²»¶ÏµÄ²âÊÔÈõ¿ÚÁîÕ˺š£
Èç¹ûͨ¹ý IP À´¿ØÖÆÆµÂÊ£¬¹¥»÷Õß¿ÉÒÔÕÒ´óÁ¿µÄ´úÀí ¡ª¡ª ÍøËÙÓжà¿ì£¬¾ÍÄÜÊÔ¶à¿ì¡£
µ«Ê¹ÓÃÁËǰ¶ËÂý¼ÓÃÜ£¬¹¥»÷ÕßÿÊÔÒ»¸öÃÜÂ룬¾ÍµÃÏûºÄ´óÁ¿µÄ¼ÆË㣬ÓÚÊǽ«Æ¿¾±¿¨ÔÚÓ²¼þÉÏ ¡ª¡ª ÄÜËã¶à¿ì£¬²ÅÄÜÊÔ¶à¿ì¡£
ËùÒÔ£¬ÕâÀïÓеãÀàËÆ PoW£¨Proof-of-Work£¬¹¤×÷Á¿Ö¤Ã÷£©µÄÒâÒå¡£¹ØÓÚ PoW£¬ÒÔºóÎÒÃÇ»áÏêϸ½éÉÜ¡£
0x0B ÎÞ·¨×öµ½µÄ
¾¡¹Ü¡¸Ç°¶ËÂý¼ÓÃÜ¡¹Óв»ÉÙÓÅÊÆ£¬µ«Ò²²»ÊÇÍòÄܵġ£
ÉÏÒ»½ÚÒ²Ìáµ½£¬ÄܼõÉÙ·çÏÕ£¬¶ø²»ÊÇÏû³ý·çÏÕ¡£Èç¹û±¾µØ»·¾³ÓÐÎÊÌ⣬ÄÇÈκÎÃÜÂëÊäÈë¶¼ÓзçÏÕ¡£
ÏÂÃæÎÒÃÇÀ´Ë¼¿¼Ò»¸ö³¡¾°£ºÄ³ÍøÕ¾Ê¹ÓÃÁË¡¸Ç°¶ËÂý¼ÓÃÜ¡¹£¬µ«Ã»ÓÐʹÓà HTTPS ¡ª¡ª Õâ»áµ¼ÖÂÁ´Â·±»ÇÔÌý¡£
»Ø¹Ë 0x05 С½Ú£¬Èç¹ûÄõ½¡¸Âý¼ÓÃܽá¹û¡¹£¬¾Í¿ÉÒÔÖ±½ÓµÇÉÏÕ˺ţ¬¼´Ê¹²»ÖªµÀÃ÷ÎÄÃÜÂë¡£
µÄÈ·Èç´Ë¡£µ«Çë×ÐϸÏëÒ»Ï룬Õâ²»Ò²½µµÍËðʧÁËÂð£¿
±¾À´²»½öÕ˺ű»µÁÓ㬶øÇÒÃ÷ÎÄÃÜÂëÒ²»áй¶£»¶øÈç½ñ£¬Ö»ÊÇÕ˺ű»µÁÓã¬Ã÷ÎÄÃÜÂë¶Ô·½ÈÔÎÞ·¨»ñµÃ¡£
ËùÒÔ£¬Ç°¶ËÂý¼ÓÃܵÄÕæÕý±£»¤µÄÊÇ¡¸ÃÜÂ롹¶ø²»ÊÇ¡¸Õ˺𹡣Õ˺ű»µÁ£¬ÃÜÂëÄò»µ½£¡
Èç¹û¹¥»÷Õß²»½öÄÜÇÔÌý£¬»¹ÄÜ¿ØÖÆÁ÷Á¿µÄ»°£¬¾Í¿ÉÒÔÍùÒ³Ãæ×¢Èë¹¥»÷½Å±¾£¬´Ó¶ø»ñµÃÃ÷ÎÄÃÜÂë¡£µ±È»£¬ÕâºÍµçÄÔÖж¾¡¢¼üÅÌ͵¿úÒ»Ñù£¬¶¼ÊôÓÚ¡¸»·¾³ÓÐÎÊÌ⡹£¬²»ÔÚ±¾ÎÄÌÖÂÛ·¶Î§ÄÚ¡£±¾ÎÄÌÖÂÛµÄÊÇÊý¾Ý¿âй¶µÄ³¡¾°¡£
0x0C ¶àÏß³ÌÂý¼ÓÃÜ
Óû§µÄÅäÖÃÔ½À´Ô½ºÃ£¬²»ÉÙ¶¼ÊÇËĺˡ¢°ËºË´¦ÀíÆ÷¡£ÄÜ·ñÀûÓöàÏ̵߳ÄÓÅÊÆ£¬½«Âý¼ÓÃܼÆËã½øÐзֽ⣿
Èç¹ûÿһ²½¼ÆËã¶¼ÒÀÀµÖ®Ç°µÄ½á¹û£¬ÊÇÎÞ·¨½øÐвð½âµÄ¡£ÀýÈ磺
for i = 0 to 10000 x = hash(x) end |
ÕâÊÇÒ»¸ö´®ÐеļÆË㡣Ȼ¶øÖ»Óв¢ÐеÄÎÊÌ⣬²ÅÄÜ·Ö½â³É¶à¸öСÈÎÎñ¡£
²»¹ý£¬»»Ò»ÖÖ·½Ê½µÄ¶àÏß³ÌÒ²ÊÇ¿ÉÒԵġ£ÀýÈçÎÒÃÇʹÓà 4 ¸öỊ̈߳º
# Ïß³Ì 1 x1 = hash(password, salt1) for i = 0 to 2500 x1 = hash(x1) end
# Ïß³Ì 2
x2 = hash(password, salt2)
for i = 0 to 2500
x2 = hash(x2)
end
# ... |
×îÖÕ½« 4 ¸ö½á¹ûºÏ²¢ÆðÀ´£¬ÔÙ×öÒ»´Î¼ÓÃÜ£¬×÷ΪÂý¼ÓÃܽá¹û¡£
µ«ÕâÑù»áµ¼Ö¸üÈÝÒ×ÆÆ½âÂð£¿Áôןø´ó¼Ò˼¿¼¡£
0x0D ×ܽá
ǰ¶ËÂý¼ÓÃÜ£¬¾ÍÊÇÈÃÿ¸öÓû§¹±Ï×ÉÙÁ¿µÄ¼ÆËã×ÊÔ´£¬Ê¹¼ÓÃܱäµÃ¸üÇ¿¾¢¡£
¼´Ê¹Êý¾Ýй¶£¬ÆäÖÐÒ²Äý¾ÛÁËÈ«ÍøÕ¾Óû§µÄËãÁ¦£¬´Ó¶ø´ó·ùÔö¼ÓÆÆ½â³É±¾¡£
0xFF ºó¼Ç
ǰЩÄê±ÈÌØ±ÒÁ÷ÐÐʱ£¬Í»·¢ÆæÏëÓÃä¯ÀÀÆ÷À´ÍÚ¿ó¡£ËäȻû×ö³É£¬²»¹ý»ñµÃÁËһЩÃÜÂëѧ×ËÊÆ¡£
½üÆÚÖØÐ½øÐÐÁËÕûÀí£¬²¢Ìí¼ÓÁËһЩÐÂÏë·¨£¬ÓÚÊÇдƪÏêϸµÄÎÄÕ·ÖÏíһϡ£
ÒòΪÃÜÂëѧÊôÓÚ´«Í³ÁìÓò£¬ËùÒÔ½áºÏµ±ÏÂÁ÷ÐÐµÄ Web ¼¼Êõ£¬²ÅÄܸüÓÐÐÂÒâ¡£
Èç¹ûÄã¶ÔËã·¨ÓÐÒɻ󣬿ÉÒÔÏÈ×Ðϸ¿´ 0x05 Õâ½Ú¡£
Èç¹ûÄãÊÇÄÍÐÄ¿´Íê±¾Îĵģ¬Ï£ÍûÄÜÓÐÊÕ»ñ:)
|