在Linux下生成crypt加密密码
【摘要】当我们用红帽Kickstart脚本或useradd或其他方式写东西的时候,经常会需要用到crypt命令加密生成的密码格式。那么,有没有其他方式可以生成这种格式的密码?事实上,方法有很多
1、我们可以用mkpasswd命令:这个命令就是用来生成crypt格式的密码的:
mkpasswd
输入命令后,程序会要求输入一个密码,然后生成crypt格式的字符串。
2、如果用Apache Web服务器,那么也可以用htpasswd:
htpasswd -nd user
用户名(user)叫什么都无所谓,我们关注的是密码。这个命令会输出一个user:password格式的字符串,直接把password字段复制下来就ok了。
3、有OpenSSL的话,可以使用openssl命令:
openssl passwd -crypt myPassword
把上面命令中的myPassword用你想用的密码字符串代替。
4、其他还有一些需要把命令在命令行中直接输入的方式,不过这种做法有个问题,就是在ps命令中可以看到密码,同时密码也会被记录入shell历史。
不过这个问题是有解决办法的:用脚本,或者语言解释器。
比如使用Perl:
perl -e "print crypt('password','sa');"
Perl需要一个加密盐,如这里使用了sa(salt指加密中用到的随机字符串,用不同的salt可以生成不同的加密结果)。
5、Ruby也一样需要加密盐:
ruby -e 'print "password".crypt("JU"); print("\n");'
6、PHP也可以:
php -r "print(crypt('password','JU') . \"\n\");"
需要注意的是,如果不使用加密盐(如上面命令中的JU),那么输出的字符串将不是crypt加密格式,而是MD5加密格式的。所以,加密盐其实是必须的参数。
7、Python需要导入crypt库并使用加密盐:
python -c 'import crypt; print crypt.crypt("password","Fx")'
这里的加密盐是Fx。
作者:jz
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南