小弟新人~~看API看了好久 没看懂这个是怎么实现的·哪位大神做过来帮忙讲解下~~~
文档介绍:
HMAC-SHA1签署方式使用[RFC2104] (Krawczyk, H., Bellare, M., and R. Canetti, “HMAC: Keyed-Hashing for Message Authentication,” .)中定义的HMAC-SHA1签署算法,把签署基字符串作为text, key则由先按照参数编码 (参数编码)进行编码再用“&”字符(ASCII代码38)分隔(无论是否为空)的消费方密钥和令牌密钥串接而成。 那个RFC2104是个什么东西? 作为text?  小弟看哭了 ~!~!~高手可以给个操作么·!
小弟这里有
"oauth_consumer_key=0234062e1dc34dfa069c128a5949e9ee",
"oauth_signature_method=HMAC-SHA1",
"oauth_timestamp=1288339167",
"oauth_nonce=77",
这个
oauth_signature应该怎么算啊~~PS:其实这个就是豆瓣的API认证机制,谁做过的话更好,来教教小弟~!~!

解决方案 »

  1.   

    早写时候写过这样的东西,淡忘了!
    特意查了下
    HMAC_SHA1(Hashed Message Authentication Code, Secure Hash Algorithm)是一种安全的基于加密hash函数和共享密钥的消息认证协议。它可以有效地防止数据在传输过程中被截获和篡改,维护了数据的完整性、可靠性和安全性。HMAC_SHA1消息认证机制的成功在于一个加密的hash函数、一个加密的随机密钥和一个安全的密钥交换机制。
        HMAC_SHA1 其实还是一种散列算法,只不过是用密钥来求取摘要值的散列算法。
        HMAC_SHA1算法在身份验证和数据完整性方面可以得到很好的应用,在目前网络安全也得到较好的实现PHP5.1.X以后可以直接使用hash_hmac进行hmac加密   1. echo hash_hmac('sha1',$data,$key);
       2. // sha1同样也可以为md5、sha256、sha512
      

  2.   

    $key是验证的主机给你的一个随机密钥,你在本地对要传输的字符$data配合$key进行运算之后发送到验证主机,那边会通过$key对已有的数据进行进行运算,然后结果和你发送过来的进行对比。
      

  3.   

    这些我都知道~~只是豆瓣的和网易的都不能用curl直接发送~~貌似要用header来控制~~~
    哎 ~~自己慢慢研究去吧!