使用http签名的http请求的简单安全签名

http_signature的Python项目详细描述


使用安全签名对http请求进行签名。

要求

  • 密码

可选:

  • ssh或paramiko>;=1.8.0(用于ssh代理集成)
  • 请求

用法

对于简单的原始签名:

import http_signature

sig_maker = http_signature.Signer(secret='test.pem', algorithm='rsa-sha256')
sig_maker.sign('hello world!')

用于请求:

import json
import requests
from http_signature.requests_auth import HTTPSignatureAuth

auth = HTTPSignatureAuth(key_id='Test', secret='test.pem')
z = requests.get('https://api.joyentcloud.com/my/packages/Small+1GB',
                         auth=auth, headers={'X-Api-Version': '~6.5'})

类初始化参数

http_signature.Signer(secret='', algorithm='rsa-sha256', allow_agent=False)

secret,对于rsa签名,是指向专用rsa pem文件的路径。对于hmac,它是一个秘密密码。 algorithm是六个允许的签名之一:rsa-sha1rsa-sha256rsa-sha512hmac-sha1hmac-sha256hmac-sha512allow_agent使用ssh包查找正在运行的ssh-agent实例,并使用该包对所有请求进行签名。注意,如果是这样的话,这将重写对签名算法的手动选择,使其成为rsa-sha1

http_signature.requests_auth.HTTPSignatureAuth(key_id='', secret='', algorithm='rsa-sha256', headers=None, allow_agent=False)

key_id是服务器系统知道您的rsa签名或密码的标签。 headers是连接并用作签名对象的http头列表。默认情况下,它是规范的最小值,Datehttp头。 secretalgorithmallow_agent如上所述。

许可证

麻省理工学院

更改

0.1.4(2012-10-03)

  • 考虑到ssh现在正在被重新合并到paramiko中:任何一个包都是可以接受的(但paramiko最好是>;=1.8.0)

0.1.3(2012-10-02)

  • 默认情况下,停止启用“允许”代理
  • 默认情况下,不再需要ssh包-只有当allow_agent=true时才会导入它
  • 更改了ssh代理的逻辑:如果有一个密钥可用,请不要使用任何其他身份验证方法
  • 更改了密钥文件用法的逻辑:如果解密失败,则提示输入密码
  • 错误修复:如果ssh代理找不到正确的密钥(谢谢,petervolpe),则会导致一个无意义的错误
  • 介绍versioneer.py

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java FloatingAction按钮与RecyclerView中的CardView重叠   java如何计算CardLayout中的卡数   从远程系统上传MySQL数据库并访问Java应用程序   java调用堆栈如何处理带或不带返回类型的递归?   Springboot中的java组计数聚集   java如何在javafx textarea中使用richtextfx   获取与Mockito相关的错误时出现Java问题   java如何将JaxRS响应转换为Wiremock响应   Hadoop集群java。net ConnectionException:连接被拒绝错误   java如何加载文件私有文件类型是pem   java在元空间中的提升和加载的类   如何将系统属性传递给从HTML启动的Java小程序   java如何从网页中获取值并在主类中使用它?安卓应用   java在春天,advisor和aspect之间有什么区别?   java如何检测文件是否已重命名?   java消息驱动Bean何时使用