Contributed by Garrett Wollman
<wollman@FreeBSD.ORG>
24 September 1995.
½t°_
¬°¤F«OÅ@ ¦b UNIX ¨t²Î password ªº¦w¥þ©Ê¡A ¦b¶Ç²Î¤W password ¥Î¤F³\
¦h¤èªk¥hÂZ¶Ã¡A¨Ï¨ä¤£³Q®e©öªºÅãÅS¥X¨Ó¡C¥Ñ¨©º¸¹êÅç«Ç²Ä¤Cª©ªº
Unix ¶}©l¡Apassword ¥Î¤F"one-way hash fuction" ¥
¦]¦¹¡A FreeBSD ¤p²Õ±¹ï¤@Ó¨âÃø°ÝÃD¡G§Ú̦p¦ó´£¨Ñ¦b¬ü°ê¥H¥~ªº
©Ò¦³ UNIX ¨t²Îªº¬Û®e©Ê¦Ó¤£·|¹Hªk¡H§Ų́M©w±Ä¥ÎÂùy¨î¡G
§Ú̧Ʊæ±Nµo¦æªºª©¥»¥u¥]§t¤@Ó«D¥¿¦¡ªº password ÂZ¶Ã¾¹¡A¨Ã´£
¨Ñ¤@Ó¤À¶}¨Óªºªþ¥libcrypt'¦Ó¨ä
¤¤ C ªº¨ç¦¡¥s`crypt'¡C¦b FreeBSD 1.x ©M¤@¨Ç2.0ªº¸Õ¥Îª©¤¤¡A
³oÓ«D¥¿³WªºÂZ¶Ã¾¹¨Ï¥Î¤F¤@ Nate Williams©Ò¼g¤£¦w¥þªº¨ç¦¡¡F©¹
«áªºªºª©¥»¤¤³oÓ¨ç¼Æ³Q¨Ï¥Î¥Ñ RSA Data Security¤½¥qªºMD5 one-way
hash fuction ªº¾÷¨î©Ò´À¥N¡C¦]¬°¥H¤W³o¨âӨ禡³£¨S¦³¥
¦b³o´Á¶¡¡ADES-based ±K½X hash ¨ç¦¡¨ÌµM¦b¶i¦æ¤¤¡Aº¥ý¤@Ó¦b¬ü°ê
¥H¥~µo®iªº`crypt' ¨ç¦¡³Q¿é¤J¡A¦]¦¹¬ü°êª©»P«D¬ü°êª©¦³¤F¤@
P©Ê¡CµM«á¡A¥libcrypt' ¥u¥]§t one-way password hash¡A¥t¤@Ө禡®w
`libcipher' ¥]§t¯u¥¿ªº¥
¤F¸Ñ§Aªº `crypt' ¤èªk
¤À¿ì DES-based ©Î MD5-based hash ¨ç¦¡©Ò²£¥Íªº±K½X¦r¦ê¬O«Ü®e©öªº¡C
MD5 ±K½X¦r¦êªº±Ò©l¦r¤¸Á`¬O`$1$'. ¦Ó DES±K½X¦r
¦ê«h¨S¦³¥ô¦ó¯S®íªº¦r¤¸¡A¦ý¬O³o¨Ç¦r¦ê¤ñ MD5©Ò²£¥Íªº¸ûµu¡A¦Ó¥B
³Q½s¦¨64Ó¤£¥]§t`$' ªº¦r¤¸¡A¦]¦¹¤ñ¸ûµu¥B¤£§t¿ú¦r¸¹
ªº¦r¦ê´N«Ü¦³¥i¯à¬O DES ªº±K½X¡C
¦b¤j³¡¤Àµ{¦¡¤¤¡An¨M©w§Aªº¨t²Î¬O¨Ï¥Î¨º¤@Ө禡®w¬O¬Û·í®e©öªº¡C
°£¤F¨º¨Ç¹³¬OÀRºA³sµ²ªº`init'((¹ï¨º¨Çµ{¦¡¦Ó¨¥¡A°ß¤@ªº¤èªk
¬O¥Î¤@Ó¤wª¾ªº±K½X¥h¸Õ¬Ý¬Ý¨Ã¦Û¤v¥h¬Ý)¥Î`crypt' ªºµ{¦¡
¾a`libcrypt'©Ò³sµ²ªº¡A¨C¤@Ө禡®w³£³sµ²¨ì¾A·íªº¦a¤è¡C
Á|Ó¨Ò¤l¡A¦b¨Ï¥Î DES ªº¨t²Î¤¤¡G
$ cd /usr/lib
$ ls -l /usr/lib/libcrypt*
lrwxr-xr-x 1 bin bin 13 Sep 5 12:50 libcrypt.a -> libdescrypt.a
lrwxr-xr-x 1 bin bin 18 Sep 5 12:50 libcrypt.so.2.0 -> libdescrypt.so.2.0
lrwxr-xr-x 1 bin bin 15 Sep 5 12:50 libcrypt_p.a -> libdescrypt_p.a
¦b¤@ӨϥδӰò©ó MD5 ¨ç¦¡®wªº¨t²Î¡A¤@¼Ë¦³³sµ²¦s¦b¡A¦ý¬O¥¦¬O³s
µ²¨ì`libscrypt' ¦Ó¤£¬O`libdescrypt'.