Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119885
  • 博文数量: 24
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-22 14:58
个人简介

坚持,做最好的自己

文章分类

全部博文(24)

文章存档

2015年(2)

2014年(9)

2013年(13)

我的朋友

分类: LINUX

2013-04-08 12:39:35

点评:当我们用红帽Kickstart脚本或useradd或其他方式写东西的时候,经常会需要用到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插件也可以实现相同的目的。 

  欢迎补充其他的方式!
阅读(2626) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~