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

yipeiwu_com6年前Python基础

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)

PS:关于加密技术,本站还提供了如下加密工具供大家参考使用:

MD5在线加密工具:http://tools.jb51.net/password/CreateMD5Password

Escape加密/解密工具:http://tools.jb51.net/password/escapepwd

在线SHA1加密工具:http://tools.jb51.net/password/sha1encode

短链(短网址)在线生成工具:http://tools.jb51.net/password/dwzcreate

短链(短网址)在线还原工具:http://tools.jb51.net/password/unshorturl

高强度密码生成器:http://tools.jb51.net/password/CreateStrongPassword

相关文章

python web基础之加载静态文件实例

在web运行中很重要的一个功能就是加载静态文件,在django中可能已经给我们设置好了,我们只要直接把模板文件 放在templates就好了,但是你知道在基础中,像图片是怎么加载以及找到...

用python代码将tiff图片存储到jpg的方法

mac用起来还是有很多不方便的地方,app很局限也都不是很好用,mac自带的截图工具,格式是tiff,需要转成jpg才能在代码中使用,利用python代码很轻松做到了这一点: 打开终端,...

python实现各进制转换的总结大全

前言 玩ctf经常遇到进制转换的问题,就正好做一个进制转换总结,分享出来供大家参考学习,下面来一起看看详细的介绍: 字符串与十六进制转换 例如百度ctf 12月的第二场第一个misc...

python twilio模块实现发送手机短信功能

python twilio模块实现发送手机短信功能

前排提示:这个模块不是用于对陌生人进行短信轰炸和电话骚扰的,这个模块也没有这个功能,如果是抱着这个心态来的,可以关闭网页了 语言:python 步骤一:安装twilio模块 pip in...

python监测当前联网状态并连接的实例

如下所示: def test1(): import os return1=os.system('ping 8.8.8.8') if return1: print 'ping...