crypt

CRYPT(3)        Ð ÑководÑÑво пÑогÑаммиÑÑа Linux        CRYPT(3)



ÐÐЯ
       crypt, crypt_r - ÑиÑÑÑÐµÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¸ даннÑе

ÐÐÐÐÐ
       #define _XOPEN_SOURCE       /* СмоÑÑиÑе feature_test_macros(7) */
       #include <unistd.h>

       char *crypt(const char *key, const char *salt);

       #define _GNU_SOURCE         /* СмоÑÑиÑе feature_test_macros(7) */
       #include <crypt.h>

       char *crypt_r(const char *key, const char *salt,
                     struct crypt_data *data);

       ÐомпонÑеÑÑÑ Ð¿Ñи Ñказании паÑамеÑÑа -lcrypt.

ÐÐÐСÐÐÐÐ
       crypt() â ÑÑнкÑÐ¸Ñ ÑиÑÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°ÑолÑ. Ðна оÑнована
       на алгоÑиÑме ÑÑандаÑÑа ÑиÑÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ (Data
       Encryption Standard) Ñ ÑазлиÑнÑми ÑаÑÑиÑениÑми,
       наÑеленнÑми (помимо пÑоÑего) на
       ÑÑложнение задаÑи поиÑка клÑÑа пÑи помоÑи
       ÑпеÑиалÑного обоÑÑдованиÑ.

       key â задаваемÑй полÑзоваÑелем паÑолÑ.

       salt (ÑолÑ) â двÑÑÑимволÑÐ½Ð°Ñ ÑÑÑока, вÑбиÑаемаÑ
       из набоÑа [a-zA-Z0-9./]. ÐÑа ÑÑÑока иÑполÑзÑеÑÑÑ Ð´Ð»Ñ
       напÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма по Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸Ð· 4096-и
       пÑÑей.

       ÐÑли взÑÑÑ Ð¼Ð»Ð°Ð´Ñие 7 биÑов каждого из пеÑвÑÑ
       8 Ñимволов key, Ñо полÑÑаеÑÑÑ 56-биÑнÑй клÑÑ. ÐÑоÑ
       клÑÑ Ð¸ÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑаÑного
       ÑиÑÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½ÑÑанÑной ÑÑÑоки (обÑÑно ÑÑÑоки,
       ÑоÑÑоÑÑей из Ñимволов «0»). ÐозвÑаÑаемое
       знаÑение â ÑказаÑÐµÐ»Ñ Ð½Ð° заÑиÑÑованнÑй
       паÑолÑ, ÑеÑÐ¸Ñ Ð¸Ð· 13-и пеÑаÑнÑÑ ASCII-Ñимволов
       (пеÑвÑе два Ñимвола ÑодеÑÐ¶Ð°Ñ salt).
       ÐозвÑаÑаемое знаÑение ÑказÑÐ²Ð°ÐµÑ Ð½Ð°
       ÑÑаÑиÑеÑкие даннÑе, коÑоÑÑе пеÑезапиÑÑваÑÑÑÑ
       пÑи каждом вÑзове.

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

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

       ФÑнкÑÐ¸Ñ crypt_r() ÑвлÑеÑÑÑ ÑеенÑеÑабелÑной
       веÑÑией crypt(). ÐÐ»Ñ ÑÑÑÑа и ÑÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑезÑлÑÑаÑа в
       ней иÑполÑзÑеÑÑÑ ÑÑÑÑкÑÑÑа, на коÑоÑÑÑ ÑказÑваеÑ
       data. ÐеÑед пеÑвÑм вÑзовом crypt_r() ÑÑебÑеÑÑÑ
       вÑделиÑÑ Ð¼ÐµÑÑо под ÑÑÑÑкÑÑÑÑ Ð¸ пÑиÑвоиÑÑ
       data->initialized знаÑение 0.

ÐÐÐÐÐ ÐЩÐÐÐÐÐ ÐÐÐЧÐÐÐÐ
       ÐÑи ÑÑпеÑном вÑполнении возвÑаÑаеÑ
       ÑказаÑÐµÐ»Ñ Ð½Ð° ÑиÑÑованнÑй паÑолÑ. ÐÑи оÑибке
       возвÑаÑаеÑÑÑ NULL.

ÐШÐÐÐÐ
       EINVAL ÐнаÑение salt Ð¸Ð¼ÐµÐµÑ Ð½ÐµÐ²ÐµÑнÑй ÑоÑмаÑ.

       ENOSYS ФÑнкÑÐ¸Ñ crypt() не Ñеализована,
              возможно, из-за запÑеÑов СШРна ÑкÑпоÑÑ
              алгоÑиÑмов ÑиÑÑованиÑ.

       EPERM  ÐнаÑение /proc/sys/crypto/fips_enabled не Ñавно
              нÑлÑ, но делаеÑÑÑ Ð¿Ð¾Ð¿ÑÑка иÑполÑзоваÑÑ
              неÑÑойкий Ñип ÑиÑÑованиÑ, Ñакой как DES.

ÐТРÐÐУТЫ
       ÐпиÑание ÑеÑминов данного Ñаздела ÑмоÑÑиÑе
       в attributes(7).

       ┌──────────────┬────────────────────────────────┬──────────────────────┐
       │ÐнÑеÑÑÐµÐ¹Ñ ÐÑÑибÑÑ                      ÐнаÑение       │
       ├──────────────┼────────────────────────────────┼──────────────────────┤
       │crypt()       │ ÐезвÑедноÑÑÑ Ð² ниÑÑÑ │ MT-Unsafe race:crypt │
       ├──────────────┼────────────────────────────────┼──────────────────────┤
       │crypt_r()     │ ÐезвÑедноÑÑÑ Ð² ниÑÑÑ │ MT-Safe              │
       └──────────────┴────────────────────────────────┴──────────────────────┘
СÐÐТÐÐТСТÐÐРСТÐÐÐÐРТÐÐ
       crypt(): POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. ФÑнкÑиÑ
       crypt_r() ÑвлÑеÑÑÑ ÑаÑÑиÑением GNU.

ÐÐÐÐЧÐÐÐЯ
   ÐамеÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ glibc
       ÐеÑÑÐ¸Ñ ÑÑой ÑÑнкÑии, ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð² glibc2,
       Ð¸Ð¼ÐµÐµÑ ÑледÑÑÑие дополниÑелÑнÑе алгоÑиÑмÑ
       ÑиÑÑованиÑ.

       ÐÑли salt ÑвлÑеÑÑÑ ÑÑÑокой Ñимволов,
       наÑинаÑÑейÑÑ Ñ Â«$id$», за коÑоÑой ÑледÑеÑ
       ÑÑÑока, оканÑиваÑÑаÑÑÑ Â«$»:

              $id$salt$encrypted

       Ñо, вмеÑÑо иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð°ÑÐ¸Ð½Ñ DES,
       иÑполÑзÑеÑÑÑ Ð¼ÐµÑод, задаваемÑй id, а оÑÑавÑаÑÑÑ
       ÑаÑÑÑ ÑÑиÑаеÑÑÑ ÑÑÑокой паÑолÑ. ÐоддеÑживаÑÑÑÑ
       ÑледÑÑÑие знаÑÐµÐ½Ð¸Ñ id:

              ID  | ÐеÑод
              ──────────────────────────────────────────────────────────────────────────────────
              1   | MD5
              2a  | Blowfish (Ð½ÐµÑ Ð² оÑновной веÑви glibc; добавлен в
                  | некоÑоÑÑÑ Ð´Ð¸ÑÑÑибÑÑÐ¸Ð²Ð°Ñ Linux)

              5   | SHA-256 (наÑÐ¸Ð½Ð°Ñ Ñ glibc 2.7)
              6   | SHA-512 (наÑÐ¸Ð½Ð°Ñ Ñ glibc 2.7)

       ÐдеÑÑ $5$salt$encrypted â ÑиÑÑованнÑй по SHA-256 паÑолÑ,
       а $6$salt$encrypted ÑиÑÑованнÑй по SHA-512 паÑолÑ.

       «salt» пÑедÑÑавлÑÐµÑ Ñобой ÑÑÑÐ¾ÐºÑ Ð´Ð»Ð¸Ð½Ð¾Ð¹ до 16
       Ñимволов, ÑледÑÑÑÑÑ Ð¿Ð¾Ñле «$id$» в Ñоли.
       ШиÑÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÑаÑÑÑ ÑÑÑоки паÑÐ¾Ð»Ñ â
       дейÑÑвиÑелÑно вÑÑиÑленнÑй паÑолÑ. РазмеÑ
       ÑÑой ÑÑÑоки поÑÑоÑнного ÑазмеÑа:

       MD5     | 22 Ñимвола
       SHA-256 | 43 Ñимвола
       SHA-512 | 86 Ñимволов

       Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ Ð² «salt» и «encrypted» вÑодÑÑ Ð²
       диапазон [a-zA-Z0-9./]. Ð ÑеализаÑиÑÑ MD5 и SHA
       ÑÑиÑÑваеÑÑÑ Ð²ÑÑ Ð·Ð½Ð°Ñение key (а не ÑолÑко пеÑвÑе
       8 Ð±Ð°Ð¹Ñ ÐºÐ°Ðº в DES).

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



                                  2015-08-08                          CRYPT(3)