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, указывает на один и тот же статический массив, содержимое которого полностью изменяется после каждого вызова.