码迷,mamicode.com
首页 > 编程语言 > 详细

python(6)- hashlib模块

时间:2016-03-14 01:40:01      阅读:399      评论:0      收藏:0      [点我收藏+]

标签:

加密算法: SHA1,SHA224, SHA256, SHA384, SHA512 , MD5

1. md5

import hashlib

m = hashlib.md5()
m.update(b"Hello")     #加密
m.update(b"It‘s me")   #再加密一句
print(m.digest())    #二进制
print(m.hexdigest())   #16进制

 

2.SHA1

#SHA1
m = hashlib.sha1()
m.update(b"Hello")     #加密
m.update(b"It‘s me")   #再加密一句
print(m.digest())    #二进制
print(m.hexdigest())   #16进制

 

3. SHA512

#SHA512
m = hashlib.sha512()
m.update(b"Hello")     #加密
m.update(b"It‘s me")   #再加密一句
print(m.digest())    #二进制
print(m.hexdigest())   #16进制

#其它加密方法类似

 

4. 如果你觉得上面的方法还不够屌,那么还有一个hmac模块

import hmac
h = hmac.new(bsecret_key)    #生成key
h.update(bhello)    #加密
print(h.hexdigest())

下面是hmac模块使用案例

#下面是一个简单的C/S程序,使用了hmac签名

# 客户端 (signs the data)
import xmlrpclib,hmac,hashlib
key = "mysecret"

server = xmlrpclib.ServerProxy("http://localhost:8888")
name = "Homer"
signature = hmac.new(key,name).hexdigest()
print server.sayHello(signature,name)


# 服务器 (verifies the signature)
import SimpleXMLRPCServer,hmac,hashlib
key = "mysecret"

class MyClass:
    def sayHello(self, signature, name):
        if hmac.new(key,name).hexdigest() != signature:
            return "Wrong signature ! You‘re a hacker !"
        else:
            return u"Hello, %s !" % name

server_object = MyClass()
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8888))   # (2)
server.register_instance(server_object)   # (3)
print "Listening on port 8888"
server.serve_forever()
#该代码片段来自于: http://www.sharejs.com/codes/python/1880

python(6)- hashlib模块

标签:

原文地址:http://www.cnblogs.com/huangxm/p/5274302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!