您的位置:首页 > 运维架构

openssl passwd计算密码Hash

2014-07-03 13:55 323 查看
Linux系统中的密码存放在/etc/shadow文件中,并且是以加密的方式存放的,根据加密方式的不同,所产生的加密后的密码的位数也不同。

可以参考下面的一篇博文:
/article/7254204.html

openssl passwd的作用是用来计算密码hash的,目的是为了防止密码以明文的形式出现。
语法格式:
openssl passwd  [options]  [password]
openssl passwd常用的选项如下:
-1:表示采用的是MD5加密算法。
-in:表示和文件中读取密码

-stdin:从标准输入读取密码
-salt:指定salt值,不实用随机产生的salt。在使用加密算法进行加密时,即使密码一样,salt不一样,所计算出来的hash值也不一样,除非密码一样,salt值也一样,计算出来的hash值才一样。salt为8字节的字符串。

示例1:
[root@Server3 ~]# openssl passwd -1
Password:
Verifying - Password:
$1$e.i4RfRb$Xpgb9zRLu7JuNlFyZmjTp1
[root@Server3 ~]# openssl passwd -1
Password:
Verifying - Password:
$1$cE6H9Zul$Kqw7dPGnkhu/foOS4qPTK0
[root@Server3 ~]#
说明:每次使用的salt都是不一样的,即使输入相同的密码,输出的hash值也是不一样的。


示例2:指定salt
[root@Server3 ~]# openssl passwd -1 -salt '12345678'
Password:
$1$12345678$0ME5N6oDyoEAwUp7b5UDM/
[root@Server3 ~]# openssl passwd -1 -salt '12345678'
Password:
$1$12345678$0ME5N6oDyoEAwUp7b5UDM/
[root@Server3 ~]#
说明:当手动的指定salt值时,输入相同的密码,则计算出来的hash值也是一样的。


示例3:直接指定密码
[root@Server3 ~]# openssl passwd -1 -salt '12345678' redhat
$1$12345678$0ME5N6oDyoEAwUp7b5UDM/
[root@Server3 ~]#
说明:后面的redhat就是密码。


示例4:从标准输入读取密码
[root@Server3 ~]# echo -n "redhat" | openssl passwd -1 -salt '12345678' -stdin
$1$12345678$0ME5N6oDyoEAwUp7b5UDM/
[root@Server3 ~]#


示例5:从文件读取密码
[root@Server3 ~]# openssl passwd -1 -salt '12345678' -in aa
$1$12345678$0ME5N6oDyoEAwUp7b5UDM/
[root@Server3 ~]#


本文出自 “HeZhang” 博客,请务必保留此出处http://hezhang.blog.51cto.com/1347601/1433963
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: