Loading... # [设计不使用oauth身份验证的安全restful api](https://blog.p2hp.com/archives/1815) 调用api的客户端程序,需要在header处发送 API_ID: 1 API_TIME: 时间戳 API_HASH: $clienthash $user="username"; $publicKey='hello'; $privateKey= hash_hmac('sha256', $user, $publicKey); 需要先把客户端程序的privateKey存入数据库. $data=json字符串. $clienthash = hash_hmac('sha256', API_TIME.API_ID.$data, $privateKey); API端验证: $serverHash = hash_hmac('sha256', API_TIME.API_ID.$data, $privateKey);//到数据库查找此客户端的privateKey; 如果$clientHash === $serverHash 进入第二层验证 如果服务器时间和API_TIME在设定的时间段内,则验证通过. 第2种方式: 1. 设定一个密钥比如key = ‘2323dsfadfewrasa3434'。 2. 这个key 只有发送方和接收方知道。3. 调用时,发送方,组合各个参数用密钥 key按照一定的规则(各种排序,MD5,ip等)生成一个access_key。一起post提交到API接口。4. 接收方拿到post过来的参数以及这个access_key。也和发送一样,用密钥key 对各个参数进行一样的规则(各种排序,MD5,ip等)也生成一个access_key2。5. 对比access_key 和access_key2 。一样。则允许操作,不一样,报错返回或者加入黑名单。 最后修改:2023 年 08 月 08 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏