Python的加密模块md5、sha、crypt使用实例


Posted in Python onSeptember 28, 2014

MD5(Message-Digest Algorithm 5) 模块用于计算信息密文(信息摘要),得出一个128位的密文。sha模块跟md5相似,但生成的是160位的签名。使用方法是相同的。

如下实例是使用md5的:

# /usr/bin/python

# -*- coding:utf-8 -*-

import base64

try:

    import hashlib

    hash = hashlib.md5()

except ImportError:

    # for Python << 2.5

    import md5

    hash = md5.new()

hash.update('spam,spam,and egges')

value = hash.digest()

print repr(value)   #得到的是二进制的字符串

print hash.hexdigest()  #得到的是一个十六进制的值

print base64.encodestring(value) #得到base64的值
# /usr/bin/python

# -*- coding:utf-8 -*-

# 客户端与服务器端通信的信息的验证
import string

import random
def getchallenge():

    challenge = map(lambda i: chr(random.randint(0,255)),range(16))

    return string.join(challenge,"")
def getresponse(password,challenge):

    try:

        import hashlib

        hash = hashlib.md5()

    except ImportError:

        # for Python << 2.5

        import md5

        hash = md5.new()

    hash.update(password)

    hash.update(challenge)

    return  hash.digest()
print "client: ","connect"

challenge= getchallenge()

print "server: ",repr(challenge)

client_response = getresponse("trustno1",challenge)

print "client: ",repr(client_response)

server_response = getresponse("trustno1",challenge)

if client_response == server_response:

    print "server:","login ok"

crypt 模块(只用于 Unix)实现了单向的 DES 加密, Unix 系统使用这个加密算法来储存密码, 这个模块真正也就只在检查这样的密码时有用。

如下实例,展示了如何使用 crypt.crypt 来加密一个密码, 将密码和 salt组合起来然后传递给函数, 这里的 salt 包含两位随机字符.现在你可以扔掉原密码而只保存加密后的字符串了。

# /usr/bin/python

# -*- coding:utf-8 -*-
import crypt

import random,string
def getsalt(chars = string.letters+string.digits):

    return random.choice(chars)+random.choice(chars)
salt = getsalt()

print salt

print crypt.crypt('bananas',salt)
Python 相关文章推荐
python的类变量和成员变量用法实例教程
Aug 25 Python
Python两个整数相除得到浮点数值的方法
Mar 18 Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 Python
详解python调度框架APScheduler使用
Mar 28 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
Python3实现zip分卷压缩过程解析
Oct 09 Python
Python数据可视化图实现过程详解
Jun 12 Python
python三引号如何输入
Jul 06 Python
拿来就用!Python批量合并PDF的示例代码
Aug 10 Python
浅析pandas随机排列与随机抽样
Jan 22 Python
wxPython学习之主框架实例
Sep 28 #Python
python实现得到一个给定类的虚函数
Sep 28 #Python
python实现根据图标提取分类应用程序实例
Sep 28 #Python
wxPython事件驱动实例详解
Sep 28 #Python
python中的多重继承实例讲解
Sep 28 #Python
python错误处理详解
Sep 28 #Python
python中实现定制类的特殊方法总结
Sep 28 #Python
You might like
自己在做项目过程中学到的PHP知识收集
2012/08/20 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
PHP实现递归的三种方法
2020/07/04 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
Python功能键的读取方法
2015/05/28 Python
Python定时器实例代码
2017/11/01 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
Python实现手势识别
2020/10/21 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
文明礼仪事迹材料
2014/01/09 职场文书
高中生物教学反思
2014/02/05 职场文书
财务整改报告范文
2014/11/05 职场文书
道德与公民自我评价
2015/03/09 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
Python opencv缺陷检测的实现及问题解决
2021/04/24 Python
Python编程super应用场景及示例解析
2021/10/05 Python