首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从API键生成一次令牌?

从API键生成一次令牌?
EN

Security用户
提问于 2011-04-07 11:47:39
回答 2查看 3K关注 0票数 6

我有一个网站,我正在为其构建一个Drupal模块,允许该Drupal站点的用户直接从Drupal站点导航到我的网站。

我打算向每个Drupal站点管理员分发秘密API密钥,他们需要在Drupal模块的副本中输入这个值。

当这个Drupal站点向它的用户显示我的模块时,单击某些链接应该将用户带到我的站点,以及我的站点可以用来验证这个导航的一组机密数据。将有一个表单呈现给用户和一个链接呈现,所以点击链接‘提交’表单通过POST和重定向用户以及。

我需要使用这个秘密的‘api-键’来生成某种有时间限制的/一次性的代码,这些代码将提供给用户的浏览器。任何复制此生成代码的智能用户都不能重用它,以便稍后进入我的站点。

  1. 我应该使用这个API密钥作为密码来加密一些与POST请求的其余部分匹配的数据吗?当接收到它时,我用我的API密钥副本解密它,如果它与其余的数据匹配,我认为它被验证了吗?
  2. 或者我应该做一些单向哈希- md5?
  3. 我是否应该单向散列当前的时间,并且只允许访问5-10分钟?

(从https://stackoverflow.com/questions/5549411/generating-one-time-tokens-from-api-key搬来)

EN

回答 2

Security用户

发布于 2011-04-10 08:44:07

首先,也是最重要的是,永远不要将MD5用于与安全有关的任何事情。这是一个非常坏的算法。您应该使用SHA2家族的任何东西,SHA256是一个很好的选择。实现这种身份验证的一种方法是使用HMAC,API密钥可以作为算法中的秘密密钥K。拥有秘密API密钥的服务器必须接受post并提供身份验证令牌。生成的消息必须具有ID和该POST请求的消息身份验证代码。ID可以是API用户的主密钥,身份验证代码将由使用此API的服务器生成。

在这种情况下,公钥密码学是过火的,对称密码(“加密”)根本没有帮助。

票数 4
EN

Security用户

发布于 2011-04-26 14:30:20

很久以前,我为Joomla实现了一个OTP (一次密码)插件。

源代码是这里

我计划要做的是,在有效的会话中生成OTP,在特定的时间内对某些操作进行身份验证。OTP将通过一个频带外的通道发送,例如SMS.不幸的是,该项目失败了,但我认为这个代码库可能对您有所帮助。

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

https://security.stackexchange.com/questions/2950

复制
相关文章

相似问题

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