我原以为该passwd
命令使用命令mcrypt
来加密其输入,但它实际上是crypt
和/或? /encrypt
的源代码不可用。crypt
encrypt
当我不混淆这一点时 - 那么在 Linux 的早期,是passwd
使用命令mcrypt
吗? - 谁能启发我?
我问这个问题是因为我想增强我的密码可能性。
详细说明一下这个问题:
该命令passwd
要求输入您的密码,然后在您输入完密码后,后台会对您的密码进行加密。此加密密码存储在文件中shadow
。我以前以为这个加密是由 执行的?现在我的问题是,除了 shadow 之外,mcrypt
该命令还涉及哪些其他命令和/或文件?passwd
答案1
墓穴是一个 Unix 实用程序。来自链接:
Linux 发行版通常不包含与 Unix 兼容的 crypt 命令版本。这主要是由于以下三个主要因素:
- crypt 相对不太知名,很少用于电子邮件附件或文件格式
- crypt 的加密性太弱,无法抵御现代计算系统的暴力攻击(Linux 系统通常附带 GNU Privacy Guard,按现代标准它被认为是相当安全的)
- 在 Linux 开发和采用的早期,有人担心即使 crypt 使用的算法很弱,但仍可能违反 ITAR 的出口管制[需要引文];因此美国主流发行版开发商通常将其排除在外[需要引文](并让他们的客户从国际网站获取 GnuPG/GPG 或其他强加密软件,有时提供软件包或脚本来自动化该过程)。
crypt 的源代码可以在Unix 档案网站。
mcrypt
是 crypt 的后继/Linux 版本,我们至少从清醒。替代旧的 unix crypt(1)它在包裹细节中说明。
mcrypt 的源代码可以在这里找到:Intel x86 计算机上的 mcrypt_2.6.8-1.3_i386.deb
但这并未在默认的 Ubuntu 中安装。
但您正在寻找的内容可能已在 ... 注册。
/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/
部分代码:
开关(加密) { 情况 PE_BASE64: 返回_hash_base64(密码); 案例 PE_BLOWFISH: 返回 _hash_blowfish(密码,盐,迭代次数); 案例 PE_DES: 返回_hash_des(密码,盐); 情况PE_MD5: 返回_hash_md5(密码); 案例 PE_NONE: 返回 _hash_none(); 案例 PE_SHA1: 返回_hash_sha1(密码,盐,迭代次数); 案例PE_SHA256: 返回_hash_sha256(密码,盐); 案例PE_SHA512: 返回_hash_sha512(密码,盐); 案例 PE_SHMD5: 返回_hash_shmd5(密码,盐); 默认: errno = ENOSYS; _error(“加密”,1); 返回 NULL; }
所有用到的函数都在此段代码之下。