python 使用 passlib 库在 windows 平台实现 crypt
来源:互联网 发布:上海软件开发 编辑:程序博客网 时间:2024/06/05 16:37
今天同步代码的时候,发现别的同事往项目里新加了一行 “import crypt”, 编译器提示有错。我就去检查了项目的requirements文件,但没找到新的依赖,然后我google了一下,原来这个文件是Unix 系统用来给密码加密的文件,并不是python的包(本地环境Windows 8 Python 2.7)。
之后,我去服务器上找了一下这个文件,找到两个比较有用的crypt.py文件,一个是Python 2.7环境下的(服务器上装了几个不同版本的python),这个是个.so 文件(具体做什么用的不是很清楚,但vim打开一堆乱码,没太深究);另一个是Python 3.4 环境下的文件,这个文件中有一行是“import _crypt”,看了这个文件后,我有一些启发决定自己写一个crypt.py 文件(可以理解为闲得蛋疼,而且显然要借助其他的python库)。
我去搜索了一下相关的问题,然后决定使用passlib 来辅助完成相关的功能。首先,在本地环境安装这个库,然后再python安装环境的Lib/site-packages 文件夹下新建一个crypt.py 文件,然后加入如下内容:
# coding=utf-8__author__ = 'pengchong.lee'import passlib.hashimport reALGORITHM_MAPPER = { 1: passlib.hash.md5_crypt, 5: passlib.hash.sha256_crypt, 6: passlib.hash.sha512_crypt}def crypt(word, salt): standard_salt = re.compile('\s*\$(\d+)\$([\w\./]*)\$') match = standard_salt.match(salt) if not match: raise ValueError("salt format is not correct, " "in D:\Python27\Lib\site-packages\crypt.py") algorithm_num = match.group(1) extra_str = match.group(2) entryptor = ALGORITHM_MAPPER.get(int(algorithm_num)) if int(algorithm_num) == 1: result = entryptor.encrypt(word, salt=extra_str) else: result = entryptor.encrypt(word, salt=extra_str, rounds=5000) return result
OK,大功告成,另外,在解决这个问题的同时还发现 windows 安装 PyCrypto 包会有问题,解决办法是安装预编译的包,可以从这个链接中获取,有点跑题了,希望对大家有帮助。
1 0
- python 使用 passlib 库在 windows 平台实现 crypt
- 在Windows平台,使用Python链接MySQL数据库
- Python在Windows平台应用
- 在windows平台上使用Qt和libmodbus库实现modbus主机功能
- python passlib生成Hash密文并进行验证--Hash a password with passlib
- Python PyQt5在Windows平台安装
- php crypt in python
- php crypt in python
- python的crypt模块
- 【php】PHP中使用crypt()实现用户身份验证的代码
- libtomcrypt库在Windows平台下编译配置和使用
- 使用python tarfile 模块在 Windows 平台正确解压 tar 文件
- 在Windows平台上实现云自动化
- Windows 平台上的使用 Python 语言实现 appium 自动化程序 for Android(完整版)
- Windows 平台上的使用 Python 语言实现 appium 自动化程序 for Android(完整版)
- Windows 平台上的使用 Python 语言实现 appium 自动化程序环境配置
- crypt的使用
- 在Windows平台下使用安装GCC
- PHP数组排序详解
- 决策树和随机决策森林基本原理和应用实例
- Java虚拟机学习之加载机制
- css 一行内显示 超出自动隐藏
- JQ控制表格隔行换色和悬停换色
- python 使用 passlib 库在 windows 平台实现 crypt
- VB感受
- D-KSVD(Discrimination K-SVD)
- C#Winform内存加载多条件查询数据
- 纯虚函数与抽象类
- perl 解json数组
- 最近研究了一下C++里面的const
- UVA 12657 Boxes in a Line(双向链表)
- 数组指针与指针数组