在线文档教程

crypt

crypt - 检查Unix密码的函数

该模块实现crypt(3)例程的接口,该例程是基于修改的DES算法的单向散列函数; 有关更多详细信息,请参阅Unix手册页。可能的用途包括允许Python脚本接受用户输入的密码,或试图用字典破解Unix密码。

请注意,此模块的行为取决于正在运行的系统中crypt(3)例程的实际实现。因此,当前实现的任何可用扩展也将在此模块上提供。

crypt.crypt(word, salt)

word 通常是在提示或图形界面中键入的用户密码。salt通常是一个随机的两个字符的字符串,将用于以4096种方式扰乱DES算法。盐中的字符必须在集合中[./a-zA-Z0-9]。将散列密码作为字符串返回,该字符串将由与盐相同的字母组成的字符组成(前两个字符代表盐本身)。

由于一些crypt(3)扩展允许不同的值,salt的大小不同,建议在检查密码时使用完整的加密密码作为salt。

一个说明典型用途的简单例子:

import crypt, getpass, pwd def login(): username = raw_input('Python login:') cryptedpasswd = pwd.getpwnam(username)[1] if cryptedpasswd: if cryptedpasswd == 'x' or cryptedpasswd == '*': raise NotImplementedError( "Sorry, currently no support for shadow passwords") cleartext = getpass.getpass() return crypt.crypt(cleartext, cryptedpasswd) == cryptedpasswd else: return 1