Я думал, что команда passwd
использовала команду mcrypt
для шифрования своего ввода, но вместо этого это crypt
и / или encrypt
? Исходный код crypt
/ encrypt
недоступен.
Когда это не смутило - тогда в более ранние времена Linux passwd
использовала команду mcrypt
? - Кто может просветить меня?
Я спрашиваю об этом, потому что я хочу расширить возможности своего пароля.
Чтобы уточнить этот вопрос:
Команда passwd
запрашивает ввод вашего пароля, затем в фоновом режиме ваш пароль будет зашифрован, после того как вы закончите предоставлять его в качестве ввода. Этот зашифрованный пароль хранится в файле shadow
. Я думал, что в прежние времена это шифрование было выполнено mcrypt
? Теперь мой вопрос: какие другие команды и / или файлы включает команда passwd
в дополнение к командам shadow?
crypt - это утилита Unix. По ссылке:
В дистрибутивы Linux обычно не входит Unix-совместимая версия команды crypt. Во многом это связано с сочетанием трех основных факторов:
Исходный код для склепа можно найти на Unix Archive Sites .
mcrypt
является преемником / Linux-версией крипты, и мы использовали ее (по крайней мере) с Lucid . Замена для старого unix crypt (1) это указано в деталях пакета.
Исходный код для mcrypt можно найти здесь: mcrypt_2.6.8-1.3_i386.deb на машинах Intel x86
Но он не установлен в Ubuntu по умолчанию. [ 1120]
Но то, что вы ищете, вероятно, зарегистрировано в ...
/etc/login.defs
Это место, где системы Linux хранят то, что использовать. По умолчанию для Ubuntu это SHA512. Так что это не шифрование, а хешированный пароль, начинающийся с $ 6 $.
Пример использования sha1sum :
$ echo hello|sha1sum
f572d396fae9206628714fb2ce00f72e94f2258f -
-
По поводу комментариев см .: http://packages.ubuntu.com/ raring / makepasswd Это тот, который призван сделать пароль из простого текста.
Вот источник: http://people.defora.org/~khorben/projects/makepasswd/
Неполный код:
switch(encryption) { case PE_BASE64: return _hash_base64(password); case PE_BLOWFISH: return _hash_blowfish(password, salt, iterations); case PE_DES: return _hash_des(password, salt); case PE_MD5: return _hash_md5(password); case PE_NONE: return _hash_none(); case PE_SHA1: return _hash_sha1(password, salt, iterations); case PE_SHA256: return _hash_sha256(password, salt); case PE_SHA512: return _hash_sha512(password, salt); case PE_SHMD5: return _hash_shmd5(password, salt); default: errno = ENOSYS; _error("encryption", 1); return NULL; }
все используемые функции находятся ниже этого бита кода.