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列出目录下指定文件与子目录的方法
Jul 03 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
Python爬取三国演义的实现方法
Sep 12 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 Python
python3实现字符串的全排列的方法(无重复字符)
Jul 07 Python
python使用多进程的实例详解
Sep 19 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
Jan 08 Python
django haystack实现全文检索的示例代码
Jun 24 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
python字典按照value排序方法
Dec 28 Python
python自动化八大定位元素讲解
Jul 09 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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
php递归创建目录的方法
2015/02/02 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
php自动加载方式集合
2016/04/04 PHP
解决laravel查询构造器中的别名问题
2019/10/17 PHP
11款基于Javascript的文件管理器
2009/10/25 Javascript
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
js类式继承与原型式继承详解
2016/04/07 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
Python的函数嵌套的使用方法
2014/01/24 Python
python实现ID3决策树算法
2017/12/20 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
化验室技术员岗位职责
2013/12/24 职场文书
干部培训自我鉴定
2014/01/22 职场文书
家长对老师的感言
2014/03/11 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers