使用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 SimpleCursorAdapter删除值   java结束while循环条件   java检查设备是否连接到特定网络   java组织。冬眠MappingException找不到逻辑名称为annotation getter的列   为什么java邮件中会抛出此异常?   加载SDK时发生java Eclipse错误   返回奇怪输出的Java数组   JavaXStream和对象类序列化   将枚举列表传递给namedQuery后出现java非法转换异常。Hibernate中的setParameter()   java Android studio不允许我在字符串上使用开关?   有没有办法从Java程序访问存储在Chrome中的cookie   java在枚举中构造实例而不修改枚举类   java Blackberry JDE FieldChangeListener   java修复错误:未报告的异常InterruptedException   java Spring数据JPA:findAll(具有规范和可分页)在计数查询中失败