Php 如何使用密钥和密码进行验证?

Php 如何使用密钥和密码进行验证?,php,key,Php,Key,在大多数API上,比如facebook和bebo,要使用他们的API,你必须获得一个密钥和一个秘密。构建这样一个系统有哪些好方法?我将使用PHP/MySQL 当应用程序发送API请求时,我如何基本上验证用户密钥和密码是否正常?我在考虑将它们存储在MySQL中,无论发生什么情况,我都会将它们存储在MySQL中。但是我想知道是否有其他方法更适合验证过程,而不是在每个API请求上都访问数据库?如果密钥是域的加密形式,并且是他们使用的机密,那么您不需要访问数据库来验证它们 if ($key != enc

在大多数API上,比如facebook和bebo,要使用他们的API,你必须获得一个密钥和一个秘密。构建这样一个系统有哪些好方法?我将使用PHP/MySQL


当应用程序发送API请求时,我如何基本上验证用户密钥和密码是否正常?我在考虑将它们存储在MySQL中,无论发生什么情况,我都会将它们存储在MySQL中。但是我想知道是否有其他方法更适合验证过程,而不是在每个API请求上都访问数据库?

如果密钥是域的加密形式,并且是他们使用的机密,那么您不需要访问数据库来验证它们

if ($key != encrypt($domain . $secret))
    // die

如果密钥是他们正在使用的域和秘密的加密形式,则无需点击数据库进行验证

if ($key != encrypt($domain . $secret))
    // die

将身份验证信息缓存在中,您将在数据库中保存读取。

将身份验证信息缓存在中,您将在数据库中保存读取。

您需要一个地方来保存密钥/机密组合。我认为除非使用memcached之类的缓存,否则不可能不命中db

在密钥/秘密实现方面,有几个地方使用公钥/私钥组合。您使用私钥对数据进行加密,然后将其发送到使用公钥解密的位置(反之亦然)。我认为openssl包有这个功能


-d

您需要一个地方来保存密钥/密码组合。我认为除非使用memcached之类的缓存,否则不可能不命中db

在密钥/秘密实现方面,有几个地方使用公钥/私钥组合。您使用私钥对数据进行加密,然后将其发送到使用公钥解密的位置(反之亦然)。我认为openssl包有这个功能


-d

这些服务中有许多是对请求进行“签名”,而不是对整个请求进行加密。目标只是验证请求是由应用程序所有者而不是攻击者生成的;保护请求的内容不被窥探不是优先考虑的事项。对API提供者来说,验证签名比解密整个消息要省力。许多这些服务对请求进行“签名”,而不是对整个消息进行加密。目标只是验证请求是由应用程序所有者而不是攻击者生成的;保护请求的内容不被窥探不是优先考虑的事项。对API提供者来说,验证签名比解密整个消息要省力。我应该添加每个API用户都有自己的秘密,这会破坏它吗?不,只要密钥是他们的秘密和他们的域的结果。我应该添加每个API用户都有自己的秘密,这会破坏它吗?不,只要密钥是它们的秘密和域的结果。