crypt

crypt(3)                       2007-10-27-16:31                       crypt(3)



 ÐÐÐÐÐ
       crypt - ÑиÑÑÑÑ Ð³Ð°Ñло Ñа данÑ


 СТÐСÐÐ
               <b>#define _XOPEN_SOURCE</b>

               <b>#include <unistd.h></b>

               <b>char *crypt(const char *</b><i>key</i><b>, const char *</b><i>salt</i><b>);</b>



 ÐÐÐС
       crypt - Ñе ÑÑнкÑÑÑ ÑиÑÑÑÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ñла. ÐÑ Ð¾Ñновано
       на алгоÑиÑÐ¼Ñ DES (Data Encryption Standard) з можливÑÑÑÑ
       ÑÑзноманÑÑÐ½Ð¸Ñ Ð²Ð°ÑÑаÑÑй (поÑÑд з ÑнÑими ÑеÑами)
       Ð´Ð»Ñ Ñого, Ñоб ÑÑкладниÑи викоÑиÑÑаннÑ
       апаÑаÑного вÑÑÐ»ÐµÐ½Ð½Ñ Ð¿Ð¾ÑÑÐºÑ ÐºÐ»ÑÑа.

       key - Ñе введене коÑиÑÑÑваÑем гаÑло.

       salt - Ñе ланÑÑжок з Ð´Ð²Ð¾Ñ Ð·Ð½Ð°ÐºÑв з набоÑÑ
       [a-zA-Z0-9./]. Цей ланÑÑжок викоÑиÑÑовÑÑÑÑÑÑ, Ñоб
       змÑÑаÑи алгоÑиÑм в 4096 ÑÑзноманÑÑÐ½Ð¸Ñ ÑпоÑобÑв.

       ЯкÑо взаÑи молодÑÑ 7 бÑÑÑв кожного з пеÑÑиÑ
       воÑÑми знакÑв клÑÑа key, можна оÑÑимаÑи
       56-бÑÑний клÑÑ. Цей 56-бÑÑний клÑÑ
       викоÑиÑÑовÑÑÑÑÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑного ÑиÑÑÑваннÑ
       ÑÑалого ланÑÑжка (Ñк пÑавило, ланÑÑжка, Ñо
       ÑкладаÑÑÑÑÑ Ð· ÑÐ°Ð¼Ð¸Ñ Ð½ÑлÑв). ÐовеÑнене знаÑеннÑ
       бÑде покажÑиком на заÑиÑÑоване гаÑло -
       набоÑÑ Ð· 13-и дÑÑÐºÐ¾Ð²Ð½Ð¸Ñ Ð·Ð½Ð°ÐºÑв ASCII (пеÑÑÑ Ð´Ð²Ð°
       знаки пÑедÑÑавлÑÑÑÑ Ñамий ланÑÑжок salt).
       ÐовеÑнене знаÑÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·ÑÑ Ð½Ð° ÑÑаÑиÑÐ½Ñ Ð´Ð°Ð½Ñ,
       Ñий змÑÑÑ Ð±Ñде пеÑезапиÑано кожним новим
       викликом crypt.

       ÐопеÑедженнÑ: кÑлÑкÑÑÑÑ ÐºÐ»ÑÑÑв ÑÐºÐ»Ð°Ð´Ð°Ñ 2**56,
       ÑÑвне 7.2e16 Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ñ Ð·Ð½Ð°ÑеннÑ. ÐÑнÑÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²ÑÑÑÑ
       виÑеÑпного поÑÑÐºÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ñ ÐºÐ»ÑÑÑв,
       заÑÑоÑовÑÑÑи Ð²ÐµÐ»Ð¸ÐºÑ ÐºÑлÑкÑÑÑÑ Ð¿Ð°ÑалелÑниÑ
       комп'ÑÑеÑÑв. ÐÑнÑÑ Ð¿ÑогÑамне забезпеÑеннÑ,
       напÑиклад crack(1), Ñке в Ð·Ð¼Ð¾Ð·Ñ ÑÑкаÑи ÑаÑÑини
       Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ñ ÐºÐ¾Ð¼Ð±ÑнаÑÑй, звиÑайно
       викоÑиÑÑовÑÐ²Ð°Ð½Ð¸Ñ Ð»ÑдÑми Ð´Ð»Ñ Ð³Ð°Ñел. ТомÑ,
       вибÑÑ Ð³Ð°Ñла повинен, ÑонайменÑе, ÑникаÑи
       звиÑÐ°Ð¹Ð½Ð¸Ñ ÑлÑв Ñ Ð½Ð°Ð·Ð². Рекомендовано
       викоÑиÑÑÐ°Ð½Ð½Ñ Ð¿ÑогÑами passwd(1) Ð´Ð»Ñ Ð¿ÐµÑевÑÑки
       вÑÐ°Ð·Ð»Ð¸Ð²Ð¸Ñ Ð³Ð°Ñел пÑд ÑÐ°Ñ ÑÑнÑого вибоÑÑ.

       Сам алгоÑиÑм DES Ð¼Ð°Ñ Ð¿ÐµÐ²Ð½Ñ Ð½ÐµÐ´Ð¾Ð»Ñки, Ñо
       ÑобиÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑÐ°Ð½Ð½Ñ ÑнÑеÑÑейÑÑ crypt(3) поганим
       вибоÑом Ð´Ð»Ñ ÑогоÑÑ ÑнÑого окÑÑм аÑÑенÑиÑÑкаÑÑÑ
       за гаÑлом. ЯкÑо ви задÑмали викоÑиÑÑаÑи
       ÑнÑеÑÑÐµÐ¹Ñ crypt(3) Ð´Ð»Ñ ÑиÑÑÑвалÑного пÑоекÑÑ,
       кÑаÑе не ÑобÑÑÑ ÑÑого; наÑомÑÑÑÑ Ð·Ð½Ð°Ð¹Ð´ÑÑÑ ÑоÑоÑÑ
       ÐºÐ½Ð¸Ð¶ÐºÑ Ð¿Ð¾ кÑипÑогÑаÑÑÑ Ð°Ð±Ð¾ Ð¾Ð´Ð½Ñ Ð·
       ÑиÑокодоÑÑÑÐ¿Ð½Ð¸Ñ Ð±ÑблÑоÑек DES.


 ÐÐÐÐÐ ÐÐÐÐ ÐÐÐЧÐÐÐЯ
       ÐовеÑÑаÑÑÑÑÑ Ð¿Ð¾ÐºÐ°Ð¶Ñик на заÑиÑÑоване гаÑло. У
       Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, бÑде повеÑнÑÑо NULL.


 ÐÐÐÐ ÐÐÐÐÐÐÐ
       ENOSYS
               ФÑнкÑÑÑ crypt не вÑÑлено, можливо з-за
              Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ñ Ð¡Ð¨Ð Ñодо екÑпоÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑмÑв.


 GNU-Ð ÐÐШÐÐ ÐÐÐЯ
       glibc2-веÑÑÑÑ ÑÑÑÑ ÑÑнкÑÑÑ Ð¼Ð°Ñ Ð½Ð°ÑÑÑÐ¿Ð½Ñ Ð´Ð¾Ð´Ð°ÑковÑ
       можливоÑÑÑ. ЯкÑо salt - Ñе ÑимволÑний
       ланÑÑжок, Ñо ÑозпоÑинаÑÑÑÑÑ Ð· "$1$" за Ñким
       ÑлÑдÑÑ ÑонайбÑлÑÑе вÑÑÑм знакÑв Ñз
       необов'Ñзковим закÑнÑеннÑм "$", ÑÐ¾Ð´Ñ Ð·Ð°Ð¼ÑÑÑÑ
       викоÑиÑÑÐ°Ð½Ð½Ñ Ð´Ð²Ð¸Ð³Ñна DES, ÑÑнкÑÑÑ crypt
       бÑблÑоÑеки glibc викоÑиÑÑÐ°Ñ Ð°Ð»Ð³Ð¾ÑиÑм,
       оÑнований на MD5 Ñ Ð²Ð¸Ð´Ð°ÑÑÑ 34 байÑи, а Ñаме
       "$1$<ланÑÑжок>$", де <ланÑÑжок> ÑкладаÑимеÑÑÑÑ Ð·
       до 8-и знакÑв, Ñо ÑлÑдÑÑÑÑ Ð·Ð° "$1$" Ñ salt, за Ñкими
       ÑлÑдÑÑ 22 байÑи з набоÑÑ [a-zA-Z0-9./]. ЦÑого ÑазÑ,
       знаÑÐµÐ½Ð½Ñ ÑÑлого клÑÑа Ñ Ð²Ð°Ð¶Ð»Ð¸Ð²Ð¸Ð¼ (а не
       ÑÑлÑки пеÑÑÑ 8 байÑÑв).

       ÐÑигÑами, ÑÐºÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑÑÑ ÑÑ ÑÑнкÑÑÑ, повиннÑ
       зв'ÑзÑваÑиÑÑ Ð·Ð° Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ -lcrypt.


 ÐÐ ÐÐÐÐÐ
                  #include <stdio.h>
                  #include <unistd.h>

                  #define _XOPEN_SOURCE

                  int main()
                  {
                      char *key = "potato";
                      const char *salt = "$1$couch$";

                      printf("%s\n", crypt(key, salt));
                      return 0;
                  }




 ÐÐÐÐÐÐÐÐÐÐСТЬ СТÐÐÐÐРТÐÐ
       SVID, X/OPEN, BSD 4.3, POSIX 1003.1-2001


 ÐÐÐÐТЬСЯ ТÐÐÐÐ
       login(1), passwd(1), encrypt(3), getpass(3), passwd(5)




© 2005-2007 DLOU, GNU FDL     2007-10-27-16:31                       crypt(3)