在Linux下生成crypt加密密码的方法 |
本文标签:crypt,加密密码 我们可以用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插件也可以实现相同的目的 。 欢迎补充其他的方式! |