python- hashlib模块

Posted 黄小墨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python- 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(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- hashlib模块的主要内容,如果未能解决你的问题,请参考以下文章

python 模块之hashlib

Python hashlib模块

Python hashlib模块

python之hashlib模块

python,hashlib模块

25.Python序列化模块,hashlib模块, configparser模块,logging模块,异常处理