python(6)- hashlib模块
加密算法: 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(b'secret_key') #生成key h.update(b'hello') #加密 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