zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    研究称90%的癌症由非健康生活习惯导致
    章苏阳:早期投资,第一是看人,第二也是看人,第三还是看人!
    文章翻译第七章7-9
    文章翻译第七章4-6
    文章翻译第六章1-3
    翻译文章第六章8-11
    文章翻译第七章10-12
    VR虚拟现实技术在教育领域的前景展望
    围棋比赛不算什么,更牛的是机器人能预测未来
    c语言简单实现word count功能
  • 原文地址:https://www.cnblogs.com/huangxm/p/5274302.html
Copyright © 2011-2022 走看看