用SHA哈希算法加密密码文件
2011-11-29 22:04
183 查看
在Linux的发行版中,用户的登录密码通常是用MD5算法散列后存储于/etc/shadows文件中的。这种方法的安全性因MD5容易碰撞的特性而相对较弱,虽然这并不意味着MD5对于密码散列算法不可靠。但一个更加安全、健壮、碰撞概率小且鲁棒性良好的密码哈希算法仍是值得期待的,如SHA算法。 下文介绍了SHA512哈希函数,它是NSA在RHEL5.0中推荐的密码散列算法。 具体的操作步骤如下。 [b]修改相应文件
[/b]/etc/pam.d/passwd 默认的/etc/pam.d/passwd如下所示:将md5用sha512替换,并在行尾增加rounds选项。 rounds=N选项增加密码强度,它比哈希算法对安全性的影响更大。例如,rounds=65536意味着攻击者如果要想破解/etc/shadow中密码,每次穷举都必须尝试65536次,因此,密码的破译时间将延迟65536倍。这也意味着你的计算机在每次用户登录时都要计算65536次哈希,但即使这样,一台地配置的计算机也能在1秒内完成这个操作。如果你省略rounds选项,glibc将将使用5000作为sha512算法的默认值。 修改完毕后,etc/pam.d/passwd文件如下所示:/etc/default/passwd 默认的etc/default/passwd如下所示:在第7行,将改为用新算法重置密码
修改完算法后,原来的密码并不会自动更新哈希值。因此,用户必须用新算法重置密码。操作完成后,检查/etc/shadow文件。用SHA256哈希的密码以$5开头;
用SHA512哈希的密码以$6开头;
通过 Wiz 发布
[/b]/etc/pam.d/passwd 默认的/etc/pam.d/passwd如下所示:
#%PAM-1.0 #password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 #password required pam_unix.so md5 shadow use_authtok password required pam_unix.so md5 shadow nullok
#%PAM-1.0 #password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 #password required pam_unix.so md5 shadow use_authtok password required pam_unix.so sha512 shadow nullok rounds=65536
# This file contains some information for # the passwd (1) command and other tools # creating or modifying passwords. # Define default crypt hash # CRYPT={des,md5,blowfish} CRYPT=md5 # Use another crypt hash for group passwowrds. # This is used by gpasswd, fallback is the CRYPT entry. # GROUP_CRYPT=des # We can override the default for a special service # by appending the service name (FILES, YP, NISPLUS, LDAP) # for local files, use a more secure hash. We # don't need to be portable here: CRYPT_FILES=blowfish # sometimes we need to specify special options for # a hash (variable is prepended by the name of the # crypt hash). BLOWFISH_CRYPT_FILES=5 # For NIS, we should always use DES: CRYPT_YP=des
CRYPT=md5
CRYPT=sha512
修改完算法后,原来的密码并不会自动更新哈希值。因此,用户必须用新算法重置密码。
[root@Atlantis ~]# cat /etc/shadow root:$1$JG6hRmVw$U5TG63c15Y7GhdQINK4G91:15306:::::: [root@Atlantis ~]# passwd Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully [root@Atlantis ~]# cat /etc/shadow root:$6$rounds=65536$tsgwxqNn$nX8Xqw8Ws9WfZ7CsO9M/kOnFBxqQFWBfhI/gMNqsdOnmn7XrE9mBdcQnjHZqFg8yCYpyfxUBxrF7vvaRvyA4W1:15306::::::
用SHA512哈希的密码以$6开头;
通过 Wiz 发布
相关文章推荐
- SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
- shadow文件中密码的加密方式
- Spring 中使用jasypt对配置文件(.properties)中密码加密
- 使用主密码对各种账户密码进行加密管理的文件加密工具
- PB数据库连接描述文件的密码加密和解密原理
- SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
- proxool配置文件中用户和密码加密
- C#通过一个密码对文件进行加密解密操作
- shadow文件中密码的加密方式
- DES 文件加密, RSA 给密码加密
- Web项目中对配置文件中的密码进行加密(数据库连接密码)
- shadow文件中密码的加密方式
- 密码、文件MD5加密,密码sha256、sha384、sha512Hex等加密
- 面试常见问题:如何加密Web项目中配置文件中的密码?
- [★] 本地配置文件中存储密码 之 加密解密
- 文件中用tobase() && frombase64() 对密码进行加密和解密遇到的问题
- NET 本地配置文件中存储密码 之 加密解密
- php 压缩文件并加密压缩包(压缩包添加密码)
- kettle生成ktr文件_数据库密码的加密与解密
- 利用TEA算法实现加密密码文件生成与解密