CRYPT(3C) CRYPT(3C)
НАЗВАНИЕ
crypt, setkey, encrypt - шифровка хешированием
СИНТАКСИС
char *crypt (key, salt)
char *key, *salt;
void setkey (key)
char *key;
void encrypt (block, ignored)
char *block;
int ignored;
ОПИСАНИЕ
Функция crypt предназначена для шифровки пароля. Она
основана на алгоритме шифровки хешированием, назначение
которого, помимо всего прочего, - предупредить исполь-
зование аппаратных средств раскрытия ключа.
Аргумент key представляет собой пароль, введенный поль-
зователем. Salt - это двухсимвольная цепочка, выбирае-
мая из множества [a-zA-Z0-9./]. Она настраивает алго-
ритм хеширования на один из 4096 вариантов, после чего
пароль используется как ключ для циклической шифровки
некоторой текстовой константы. Возвращаемое значение
указывает на зашифрованный пароль. Его первые два сим-
вола равны salt.
Функции setkey и encrypt обеспечивают доступ (на до-
вольно примитивном уровне) к алгоритму хеширования. Ар-
гумент функции setkey - это символьный массив длиной
64, содержащий только символы с числовым значением 0 и
1 и изображающий цепочку бит. В каждой из восьми групп
по 8 символов наименее значащий "бит" игнорируется. По-
лученный 56-битный ключ передается компьютеру и исполь-
зуется в алгоритме хеширования для шифровки цепочки
block в функции encrypt.
Аргумент функции encrypt - символьный массив длиной 64,
содержащий только символы с числовым значением 0 и 1.
Аргумент преобразуется на месте в массив того же вида,
изображающий биты аргумента после применения алгоритма
хеширования с ключом, установленным в функции setkey.
Аргумент ignored не используется, но должен быть задан.
СМ. ТАКЖЕ
getpass(3C), passwd(4).
login(1), makekey(1), passwd(1) в Справочнике пользова-
теля.
ОГРАНИЧЕНИЯ
Значение, возвращаемое функцией crypt, указывает на
один и тот же статический массив, содержимое которого
полностью изменяется после каждого вызова.
|