hashlib模块用于加密操作,代替了md5和sha模块,

主要提供SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法.

# -*- coding:utf-8 -*-
__author__ = 'shisanjun' import hashlib
m=hashlib.md5() #使用MD5算法
m.update(b"hello") #必须加b,申明为byte
m.update(b"It is me") print(m.digest()) #2进制格式hash
m.update(b"hello It is me")
print(m.digest())
print(m.hexdigest()) #16进制格式hash """
def digest(self, *args, **kwargs): # real signature unknown
""" Return the digest value as a string of binary data. """
pass def hexdigest(self, *args, **kwargs): # real signature unknown
""" Return the digest value as a string of hexadecimal digits. """
pass
"""
# -*- coding:utf-8 -*-
__author__ = 'shisanjun' import hashlib #md5算法加密
hash=hashlib.md5()
hash.update(b'admin')
print(hash.hexdigest()) #sha1算法加密
hash=hashlib.sha1()
hash.update(b"admin")
print(hash.hexdigest()) #sha256算法加密
hash=hashlib.sha256()
hash.update(b"admin")
print(hash.hexdigest()) #sha512算法加密
hash=hashlib.sha512()
hash.update(b"admin")
print(hash.hexdigest())

python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密

散列消息鉴别码,简称HMAC,是一种基于消息鉴别码MAC(Message Authentication Code)的鉴别机制。使用HMAC时,消息通讯的双方,通过验证消息中加入的鉴别密钥K来鉴别消息的真伪;

一般用于网络通信中消息加密,前提是双方先要约定好key,就像接头暗号一样,然后消息发送把用key把消息加密,接收方用key + 消息明文再加密,拿加密后的值 跟 发送者的相对比是否相等,这样就能验证消息的真实性,及发送者的合法性了。

>>> import hmac
>>> print hmac.new("mykey","Hello world !").hexdigest()
d157e0d7f137c9ffc8d65473e038ee86 #下面是一个简单的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()

最新文章

  1. iOS 下拉刷新-上拉加载原理
  2. ios 缺少合规证明
  3. ios8版本地图定位注意点
  4. JMS学习(六)-ActiveMQ的高可用性实现
  5. sed小知识总结
  6. [题解]hdu 1009 FatMouse' Trade(贪心基础题)
  7. 在Servlet中出现一个输出中文乱码的问题(已经解)。
  8. iOS:集成ijkplayer视频直播
  9. Servlet容器如何同时来处理多个请求
  10. poj 3048 Max Factor(素数筛)
  11. Delphi中TxmlDocument控件的用法 转
  12. TypeScript设计模式之组合、享元
  13. hibernate学习(四)hibernate的一级缓存&快照
  14. js中对象的自定义排序
  15. $refs的用法及作用
  16. Flutter的Appbar
  17. 多态(instanceof)
  18. 动态分配内存 new
  19. form表单提交时action路劲问题
  20. CSS 实现图片灰度效果

热门文章

  1. 《Linux内核设计与实现》第3章读书笔记
  2. 20135239 益西拉姆 linux内核分析 扒开系统调用的三层皮(下)
  3. cgroup限制内存
  4. Android 程序架构: MVC、MVP、MVVM、Unidirectional、Clean...
  5. K8S调度之节点亲和性
  6. kubernetes node管理
  7. 触发器的SQL语法
  8. SGD中的重要参数
  9. Date时间格式比较大小
  10. Bayer图像处理