我想创建一个安全的 REST API
例如,如果我看到 google API,API KEY 是基于域生成的。
从这里我有两个问题:
首先,使用单向散列是真的/正确吗?如果是,如果有人知道散列方法和域,他将如何生成 api key 并使用它。我可以使用什么哈希方法/函数?
第二个是,如果客户端制作桌面应用程序,他如何生成从桌面访问的 API KEY,现在是一个具有域 url 的网站。我的意思是,他们可以生成 api key ,因为没有 url。
有什么好的方法吗?,如何创建安全的 api 以及如何创建 api key ?
顺便说一句,我正在使用 PHP
最佳答案
您可以使用和混合许多带有附加盐的哈希方法,这些方法可以基于域+其他逻辑,这将非常难以猜测或破解(取决于您使用的哈希算法将使用和其他东西),除非有人知道它是如何完成的。 您还可以生成 UUID 并将其用作 api key (我可能会使用它),http://en.wikipedia.org/wiki/Uuid以版本4为例,你可以查看它的实现细节,甚至可以很容易地想到一些改进。
不太清楚你的意思。
关于php - 如何创建强大的 api key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7832938/