首页 > 编程语言 > 详细

python(6)- hashlib模块

时间:2016-03-14 01:39:13      阅读:269      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!