Отказ от ответственности: я знаю Google, а не криптографию.
CRYPT (3) Руководство программиста Linux
CRYPT (3)
NAME crypt, crypt_r - пароль и шифрование данных
SYNOPSIS
#define _XOPEN_SOURCE
#include <unistd.h>
char *crypt(const char *key, const char *salt);
char *crypt_r(const char *key, const char *salt,
struct crypt_data *data);
Связь с -lcrypt.
ОПИСАНИЕ
crypt () - это функция шифрования пароля.Он основан на стандартном алгоритме шифрования данных с вариациями, предназначенными (помимо прочего) для предотвращения использования аппаратных реализаций поиска ключа.
ключ - это введенный пользователем пароль.
соль - этодвухсимвольная строка, выбранная из набора [a–zA–Z0–9./].Эта строка используется для нарушения алгоритма одним из 4096 различных способов.
Взяв младшие 7 бит каждого из первых восьми символов ключа, получается 56-битный ключ.Этот 56-битный ключ используется для многократного шифрования константной строки (обычно строки, состоящей из всех нулей).Возвращаемое значение указывает на зашифрованный пароль, серию из 13 печатных символов ASCII (первые два символа представляют саму соль).Возвращаемое значение указывает на статические данные, содержимое которых перезаписывается при каждом вызове.
Предупреждение. Пространство клавиш состоит из 2 ** 56, равных 7,2e16 возможных значений.Исчерпывающие поиски этого ключевого пространства возможны с использованием массово параллельных компьютеров.Доступно программное обеспечение, такое как crack (1), которое будет искать часть этого ключевого пространства, которая обычно используется людьми для паролей.Следовательно, выбор пароля должен, как минимум, избегать общих слов и имен.Рекомендуется использовать программу passwd (1), которая проверяет взломанные пароли в процессе выбора.
Сам алгоритм DES имеет несколько особенностей, которые делают использование интерфейса crypt () очень плохим выбором дляничего кроме аутентификации по паролю.Если вы планируете использовать интерфейс crypt () для проекта криптографии, не делайте этого: получите хорошую книгу по шифрованию и одну из широко доступных библиотек DES.