Provided by:
manpages-pl-dev_20060617-1_all 
NAZWA
crypt - szyfrowanie danych i haseł
SKŁADNIA
#define _XOPEN_SOURCE
#include <unistd.h>
char *crypt(const char *key, const char *salt);
OPIS
crypt to funkcja szyfrująca hasła. Opiera się ona na algorytmie Data
Encryption Standard, z pewnymi modyfikacjami mającymi (między innymi)
zapobiec próbom sprzętowego złamania klucza.
Argument key to hasło wpisane przez użytkownika.
Argument salt to łańcuch dwóch znaków z zestawu [a-zA-Z0-9./]. Ten
łańcuch umożliwia kodowanie jednego hasła na 4096 różnych sposobów.
Poprzez pobranie 7 najmniej znaczących bitów pierwszych ośmiu znaków
łańcucha key tworzony jest 56-bitowy klucz. Ten klucz jest używany do
zakodowania z góry ustalonego łańucha znaków (zwykle jest to łańcuch
składający się z samych zer). Zwracana wartość wskazuje na zaszyfrowane
hasło, serię 13 znaków ASCII (pierwsze dwa znaki reprezentują argument
salt). Zwracana wartość wskazuje na statyczną daną, która jest
nadpisywana przy każdym wywołaniu funkcji.
Uwaga: Istnieje 2**56 , czyli 7.2e16, możliwych wartości. Możliwe jest
przeszukiwanie przestrzeni kluczy z użyciem komputerów z przetwarzaniem
równoległym. Dostępne są programy, takie jak crack(1), przeszukujące
obszar kluczy, które są często wykorzystywane przez ludzi jako hasła.
Tak więc hasło nie powinno zawierać powszechnych wyrazów i nazw.
Zalecane jest używanie programu passwd(1), który podczas zmiany lub
wyboru hasła sprawdza, czy nie jest łatwe do złamania.
Sam algorytm DES ma kilka wad, dlatego crypt(3) jest złym rozwiązaniem
dla zastosowań innych niż autoryzacja za pomocą hasła. Jeśli planujesz
wykorzystać crypt(3) dla celów kryptograficznych, nie rób tego. Zdobądź
dobrą książkę o szyfrowaniu i jedną z ogólnodostępnych bibliotek DES.
WARTOŚĆ ZWRACANA
Zwracany jest wskaźnik do zaszyfrowanego hasła. W przypadku
wywstąpienia błędu, zwracana jest wartość NULL.
BŁĘDY
ENOSYS Funkcja crypt nie została zaimplementowana, prawdopodobnie ze
względu na ograniczenia eksportowe Stanów Zjednoczonych.
ROZSZERZENIE GNU
Wersja tej funkcji zawarta w glibc2 posiada następujące dodatkowe
własności. Jeśli salt jest łańcuchem znaków rozpoczynającym się od
znaków "$1$", po których następuje co najwyżej osiem znaków i,
opcjonalnie, zakończonym "$", to zamiast używać maszyny DES, funkcja
crypt zawarta w glibc używa algorytmu opartego na MD5, wyprowadzając do
34 bajtów w postaci "$1$<łańcuch>$", gdzie "<łańcuch>" składa się z
wspomnianych wcześniej nie więcej niż 8 znaków występujących po "$1$" w
salt, po których następują 22 znaki należące do zbioru [a-zA-Z0-9./].
Cały klucz jest tu znaczący (zamiast tylko pierwszych 8 bajtów).
Programy korzystające z tej funkcji muszą być konsolidowane z -lcrypt.
ZGODNE Z
SVID, X/OPEN, BSD 4.3, POSIX 1003.1-2001
ZOBACZ TAKŻE
login(1), passwd(1), encrypt(3), getpass(3), passwd(5)
2001-12-23 CRYPT(3)