在Linux下生成crypt加密密码的方法

(编辑:jimmy 日期: 2025/4/22 浏览:2)

我们可以用mkpasswd命令:这个命令就是用来生成crypt格式的密码的:

mkpasswd

  输入命令后,程序会要求输入一个密码,然后生成crypt格式的字符串。

  如果用Apache Web服务器,那么也可以用htpasswd:

htpasswd -nd user

  用户名(user)叫什么都无所谓,我们关注的是密码。这个命令会输出一个user:password格式的字符串,直接把password字段复制下来就ok了。

  有OpenSSL的话,可以使用openssl命令:

openssl passwd -crypt myPassword

  把上面命令中的myPassword用你想用的密码字符串代替。

  其他还有一些需要把命令在命令行中直接输入的方式,不过这种做法有个问题,就是在ps命令中可以看到密码,同时密码也会被记录入shell历史。

  不过这个问题是有解决办法的:用脚本,或者语言解释器。

  比如使用Perl:

  perl -e "print crypt('password','sa');"

  Perl需要一个加密盐,如这里使用了sa(salt指加密中用到的随机字符串,用不同的salt可以生成不同的加密结果)。

  Ruby也一样需要加密盐:

  ruby -e 'print "password".crypt("JU"); print("\n");'

  PHP也可以:

  php -r "print(crypt('password','JU') . \"\n\");"

  需要注意的是,如果不使用加密盐(如上面命令中的JU),那么输出的字符串将不是crypt加密格式,而是MD5加密格式的。所以,加密盐其实是必须的参数。

  Python需要导入crypt库并使用加密盐:

  python -c 'import crypt; print crypt.crypt("password","Fx")'

  这里的加密盐是Fx。

  数据库也可以生成crypt密码。比如用MySQL:

  echo "select encrypt('password');" | mysql

  另外,Tcl,Ubuntu下的trf,还有Lua的lua-crypt插件也可以实现相同的目的。

  欢迎补充其他的方式!
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?