Python 函数检查 UNIX 密码


要验证 UNIX 密码,我们应该使用 crypt 模块。它有 crypt(3) 例程。它基本上是一种基于改进 DES 算法的单向哈希函数。

要使用 crypt 模块,我们应该使用以下方式导入它。

import crypt

方法 crypt.crypt(word, salt)

该方法带两个参数。第一个是单词,第二个是 salt。该单词基本上是用户密码,在提示符中提供。salt 是一个随机字符串。它用于以 4096 种方式之一改变 DES 算法。salt 仅包含大写、小写、数字值以及“/”、“.” 字符。

该方法返回一个哈希密码作为字符串。

示例代码

import crypt, getpass, spwd
def check_pass():
   username = input("Enter The Username: ")
   password = spwd.getspnam(username).sp_pwdp
   if password:
      clr_text = getpass.getpass()
      return crypt.crypt(clr_text, password) == password
   else:
      return 1
        
if check_pass():
   print("The password matched")
else:    
   print("The password does not match")

输出

(以 root 级别权限运行此程序)

$ sudo python3 example.py
Enter The Username: unix_user
Password:
The password matched

更新时间: 30-7-2019

549 次查看

开启您的 职业生涯

完成课程,获得认证

开始
广告