首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

crypt

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

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

crypt.crypt(word, salt)

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

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

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

代码语言:javascript
复制
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

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com