Linux系统中的密码存放在/etc/shadow文件中,并且是以加密的方式存放的,根据加密方式的不同,所产生的加密后的密码的位数也不同。
可以参考下面的一篇博文:
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 -1Password: Verifying - Password: $1$e.i4RfRb$Xpgb9zRLu7JuNlFyZmjTp1[root@Server3 ~]# openssl passwd -1Password: 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 ~]#