"HTTP基本认证"和"HTTP摘要认证"使用用户名和密码进行认证。HTTP摘要认证更加安全,因为它不会以明文形式发送用户名和密码。
"HTTP令牌认证"使用访问令牌进行认证。
你的HTTP令牌认证代码看起来还不错。
HTTP基本认证和HTTP摘要认证之间没有太大的区别。
对于基本身份验证,在使用oAuth系统之前,用户名将与冒号连接并与密码拼接。然后,结果将使用Base64算法进行编码。
例如,假设username
是demo
,您的access_token
是123
,那么在这种情况下,连接后的结果字符串将为'demo:123'
,一旦我们应用了Base64编码,它将变成ZGVtbzoxMjM=
现在,此编码字符串会传输到HTTP头
中,并由oAuth提供程序解码。再次强调,这不是非常强的编码机制,可以很容易地被解码,因为该身份验证系统不适用于非常高安全性的系统。
同样,摘要也使用HTTP
协议发送和接收数据,但比基本OAuth更好,后者以明文
形式发送数据。摘要使用MD5加密哈希
类型的算法来加密您的密码/访问令牌
,此外还使用nonce
值来防止重放攻击。
希望这能让您对它们的工作方式有所了解。
更新
我刚看到Gimme bar上的代码。
GET /api/v0/tags HTTP/1.1
Host: gimmebar.com
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.6+ (KHTML, like Gecko) Version/4.0 Safari/528.16 Titanium/1.1.0
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Authorization: Digest username="funkatron", realm="GimmeBarAPI", nonce="7a3ab1f9cde605f27797cd04c4d1fcf6", uri="/api/v0/tags", response="3654f9b1b2ba9489e1f01ae792852987", opaque="94619f8a70068b2591c2eed622525b0e", algorithm="MD5", cnonce="6897ccbff3b08776ab61e69a814c05b4", nc=00000001, qop="auth"
Connection: keep-alive
如果您在发送请求时看到它们同时传递了使用的哈希算法以及nonce
,username
,那么他们都是在应用程序中创建并放置在标题部分。您需要找到需要放置的标题名称。
MD5
加密你的用户名和密码,并将它们放置在头部分中。 - Umesh Awasthi