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

发布网友

我来回答

1个回答

热心网友

  我们可以用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插件也可以实现相同的目的。
  欢迎补充其他的方式!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com