¾ÏÈ£ÀÇBCRYPT ¹× PBKDF2°¡ÀÖ´Â ¾ÏÈ£ ÇØ½Ì ÇÁ·¹ÀÓ ¿öÅ© | |
Áö±Ý ´Ù¿î·Îµå |
¾ÏÈ£ÀÇ ¼øÀ§ ¹× ¿ä¾à
±¤°í
- ƯÇã:
- MIT/X Consortium Lic...
- °¡°Ý:
- FREE
- °Ô½ÃÀÚ À̸§:
- Daniel Holth
- °Ô½ÃÀÚ À¥»çÀÌÆ®:
- http://bitbucket.org/dholth/
¾ÏÈ£ÀÇ Å±×
¾ÏÈ£ÀÇ ¼³¸í
bcrypt ¹× PBKDF2¿Í ¾ÏÈ£ ÇØ½Ì ÇÁ·¹ÀÓ ¿öÅ© cryptacular À̺¥Æ® °øÅë ÀÎÅÍÆäÀ̽º¸¦ °øÀ¯ ¾ÏÈ£ Çؽà ÇÔ¼öÀÇ ¸ðÀ½ÀÔ´Ï´Ù. ½±°Ô ´ç½ÅÀÌ ´ç½ÅÀÇ Àý¹ÝÀÌ »ç¿ëÀÚ ¾ÏÈ£ ¹æ½Ä¿¡¼ ¸Ö¸® ¸¶À̱׷¹ÀÌ¼Ç ÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁ³½À´Ï´Ù. »ç¿ë bcrypt ´ç½ÅÀÌ ÆÄÀ̽㿡¼ C Äڵ带 ½ÇÇàÇÒ ¼öÀÖ´Â °æ¿ì PBKDF2 ´ç½ÅÀÇ not.cryptacular ÀÎÅÍÆäÀ̽º°¡ zope.password¿¡¼ ¿µ°¨À»¹ÞÀº °æ¿ì. zope.password ´Þ¸® Çö´ëÀûÀÎ »ç¿ëÀ»À§ÇÑ °·ÂÇÑ ÃæºÐÈ÷ °èȹÀ» Æ÷ÇÔÇÏ°í zope.http¿¡ ÀÇÁ¸ÇÏÁö ¾Ê½À´Ï´Ù //chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables- bcrypt ÁÁÀº ¾ÆÀ̵ð¾î ¿Ö ¹«¾ù - ´ç½Å - ¾Ë ÇÊ¿ä-¿¡ ´ëÇÑ-s.htmlÀº ¼³¸íÇÕ´Ï´Ù. ÄÄÇ»ÅÍ´Â ÀÌÁ¦ ºü¸£´Ù. À¯Ãâ µÈ ¾ÏÈ£ µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇØ »ç¿ëÀÚ¸¦ º¸È£Çϱâ À§ÇØ, ¿ì¸®´Â SHA1 (¼Ò±Ý + ÇؽÃ)º¸´Ù È®ÀÎÇϱâ À§ÇØ ¾à°£ÀÇ ½Ã°£ÀÌ ¼Ò¿äµÉ ¾ÏÈ£ Çؽø¦ »ç¿ëÇؾßÇÕ´Ï´Ù. bcrypt ¹× PBKDF2 ÄÄÇ»ÅÍ°¡ 100 % Å×½ºÆ® coverage.cryptacular.corecryptacular.core¿Í faster.cryptacular ¼±¹Ú DelegatingPasswordManager ¹× ÀÎÅÍÆäÀ̽º PasswordChecker ¹× PasswordManager Á¤ÀǸ¦ ¾ò±â À§ÇØ Áö¼ÓÀûÀ¸·Î ±×µéÀÌ °ÇÏ°Ô ÇÒ ¼ö ÀÖµµ·Ï ÆĶó ¸ÞÆ®¸¯ º¹À⼺À» °¡Áö°íÀÖ´Ù. DelegatingPasswordManager Æú¹é (fallback)°¡ ÇÊ¿ä ¾ÏÈ£ ÀÎÄÚµù, ¿¹¸¦ ±¸ÇöÇÏÁö ¾Ê´Â °ÍÀÌ PasswordCheckerÀÇ ÀνºÅϽº InsecurePasswordScheme¸¦ ±¸ÇöÇÏÁö ¾Ê½À´Ï´Ù (). ÀÎÄÚµù () >>> ¼öÀÔ cryptacular.core >>> ¼öÀÔ cryptacular.bcrypt >>> ¼öÀÔ cryptacular.pbkdf2 >>> bcrypt = cryptacular.bcrypt.BCRYPTPasswordManager () >>> PBKDF2 = cryptacularÇÕ´Ï´Ù. pbkdf2.PBKDF2PasswordManager () >>> À§ÀÓÀÚ = cryptacular.core.DelegatingPasswordManager (¹Ù¶÷Á÷ = bcrypt, Æú¹é = (PBKDF2)) = {>>> »ç¿ëÀÚ 'Çϳª'{ '¾ÏÈ£' 'XYZZY'} '°³ÀÇ' { '¾ÏÈ£'u'hashy N °³ÀÇ SNOWMAN {}} »ç¿ëÀÚÀÇ Å°} >>> : »ç¿ëÀÚ = pbkdf2.encode (»ç¿ëÀÚ )> >> bcrypt.match (»ç¿ëÀÚ ) °ÅÁþ >>> DEF set_hash (ÇؽÃ) »ç¿ëÀÚ = Çؽà >>> delegator.check (»ç¿ëÀÚ ) Æ®·ç >>> DEF set_hash (ÇؽÃ) ÀÎ»ó ¿¹¿Ü ( "ÇؾßÇÏÁö Àç ¼³Á¤ ¹Ù¶÷Á÷ÇÑ Çؽ¬") >>> delegator.check (»ç¿ëÀÚ ¼¼ÅÍ = set_hash) Æ®·ç >>> bcrypt.match (»ç¿ëÀÚ ) °ÅÁþ >>> pbkdf2.match (»ç¿ëÀÚ ) Æ®·ç >>> À§ÀÓÀÚ .ch ¿¡Å© (»ç¿ëÀÚ ) Æ®·ç >>> bcrypt.match (»ç¿ëÀÚ ) °ÅÁþ >>> pbkdf2.match (»ç¿ëÀÚ )°¡ Truecryptacular.bcryptcryptacular.bcrypt cryptacular¿¡ ¹øµé ¾×¼¼½º °ø°³ µµ¸ÞÀÎ CRYPT_BLOWFISH (http://www.openwall.com/crypt/)¿¡ »ç¿ëÇÏ´Â ctypes. ´ç½Å can.cryptacular.pbkdf2cryptacular.pbkdf2 ¾ÏÈ£ Çؽ÷ΠRFC 2898¿¡ ¼³¸í µÈ PBKDF2 Å° À¯µµ ¾Ë°í¸®ÁòÀ» Àû¿ëÇÏ´Â °æ¿ìÀ̸¦ »ç¿ëÇؾßÇÕ´Ï´Ù. M2Crypto¸¦ »ç¿ëÇÒ ¼ö¾ø´Â °æ¿ì´Â ÆÄÀ̽㠴ëü¿Í M2Crypto.EVP.pbkdf2¸¦ »ç¿ëÇÕ´Ï´Ù. ¿ä±¸ »çÇ× : ¡¤ ÆÄÀ̽ã ÀÌ ¸±¸®½º¿¡¼´Â »õ·Î¿î ±â´É : ¡¤ cryptacular ÀÌÁ¦ ³×ÀÓ ½ºÆäÀ̽º ÆÐÅ°ÁöÀÔ´Ï´Ù. Áö¿øµÇ´Â ¾ÏÈ£ Çؽà ±¸Çö cryptacular¿¡¼ °¥ ¼ö ÀÖ½À´Ï´Ù. "À̸§"
¾ÏÈ£ÀÇ °ü·Ã ¼ÒÇÁÆ®¿þ¾î