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字符串格式化
Jun 15 Python
python daemon守护进程实现
Aug 27 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
基于Python列表解析(列表推导式)
Jun 23 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
python 列表推导式使用详解
Aug 29 Python
Python如何存储数据到json文件
Mar 09 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
Apr 24 Python
使用OpenCV去除面积较小的连通域
Jul 05 Python
python super()函数的基本使用
Sep 10 Python
python 多态 协议 鸭子类型详解
Nov 27 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 获取远程文件内容的函数代码
2010/03/24 PHP
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
jQuery加PHP实现图片上传并提交的示例代码
2020/07/16 jQuery
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
python实现图像拼接
2020/03/05 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
军训心得体会
2013/12/31 职场文书
《口技》教学反思
2014/02/21 职场文书
《寓言两则》教学反思
2014/02/27 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
企业法人授权委托书
2014/09/25 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
承诺书模板大全
2015/05/04 职场文书