首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Django中签署sha1签名?

如何在Django中签署sha1签名?
EN

Stack Overflow用户
提问于 2011-05-18 13:34:49
回答 1查看 833关注 0票数 0

我还没有深入研究django和签名

我正在尝试根据给定的需求创建一个签名。

I=我的用户名,v=到期,和s=签名

i: MYUSERNAME

v: UNIX时间戳+2小时

a: MY_API_KEY

s: SHA1签名,即("i=MYUSERNAME&v=(UNIX_TIMESTAMP + API_KEY)")

到目前为止我所拥有的。

代码语言:javascript
复制
import hashlib
import datetime
from datetime import timedelta
import time

now = datetime.datetime.now()
now = now + timedelta(hours=2)
seconds = time.mktime(now.timetuple())
seconds = seconds
API = "87df234207v4444444"
signature = hashlib.sha1()
signature.update("i=MYUSERNAME&v=%s%s" % (seconds, API))

然后,当我点击url时,我会得到一个“坏签名”的回复。

再一次,我在这方面的知识有限,你的帮助是非常感谢的。

获得正确代码的有效的iframe是http://api.myurl.com/i=MYUSERNAME&v=UNIX TIMESTAMP + 2 HOURS&s=MY VALID SIGNATURE

PDF文档

假设我们需要计算以下URI的签名:

http://framed.incloode.com/index.php?i=TEST&arg1=val1&arg2=val2&t=123

计算签名的方法如下:

  • 遍历参数和值的完整列表,
  • 将这些附加到一个长字符串HTML安全字符串中,就像普通的GET请求

对于上面的URI,这个长字符串将结束如下所示: i=TEST&arg1=val1&arg2=val2&t=123

要指定

  • ,直到该链接何时有效为止,必须添加有效性。有效性是UNIX时间戳-如果有效期为2小时,则应传递值time() + 7200。此有效性(参数和值)还必须附加到要签名的字符串中。对于上面的URI,它现在看起来如下所示: i=TEST&arg1=val1&arg2=val2&t=123&v=1444567890,初始URI中的请求应该被这个列表替换。它附加在步骤(3)检索的参数/值列表中。这样的结果可能是这样的:http://framed.incloode.com? http://framed.incloode.com?
EN

回答 1

Stack Overflow用户

发布于 2011-05-18 13:49:24

从您的描述中,我唯一能看到的是,您没有在末尾抓取十六进制摘要,我只能假设这是服务器所期望的。代之以发送此值:

hashed = signature.hexdigest()

否则,请张贴此web服务的文档,并确保您符合案例要求(您永远不知道.)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6045594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档