Tag: hmacsha1

如何在Objective-C中获得QuickBlox令牌

由于工作限制,必须使用Quickblox的RESTful API而不是iOS SDK,并且在根据教程生成有效签名时遇到问题。 以下是我的电话回复: 2014-07-25 16:19:12.646 test[2247:60b]response: <NSHTTPURLResponse: 0x10c41ae40> { URL:https://api.quickblox.com/session.json } { status code: 422, headers { "Access-Control-Allow-Origin" = "*"; "Cache-Control" = "no-cache"; Connection = "keep-alive"; "Content-Type" = "application/json; charset=utf-8"; Date = "Fri, 25 Jul 2014 23:19:12 GMT"; "QuickBlox-REST-API-Version" = "0.1.1"; Server = "nginx/1.0.15"; Status = "422 Unprocessable Entity"; "Transfer-Encoding" = Identity; "X-Rack-Cache" = […]

iOS和JavaScript库之间的HMAC SHA-512生成差异

我正在尝试使用SHA-512algorithm从我的iOS应用程序中复制Hmac生成行为,该algorithm引用此链接HMAC-SHA1的Objective-C示例代码 。 为此,我尝试使用CrytoJS和jsSHA库来计算使用javascript代码的Hmac。 我发现这些JavaScript库和我使用我的iOS代码产生的hmac值差异。 有人能帮我理解我在这里做错了什么吗? 我有一种感觉,我正在搞乱传递给这两种方法的键和计数器值的格式。 例如:key =“快速的棕色狐狸跳过懒狗”counter = 123 由iOS代码生成的Hmac-8d4b0f7c7f800ffd656829b98988048b49b08d0068f6fd33add8a02b6bce8097cdd3a69dc8292ec7cc04e15021afb4499afe4a292f8db082b2d253ddfe7d7015 由javascript库生成的Hmac-211935F67D87CBB6A98DE6A6D9D64F9AAF8DA5F09BF17F1B7E5BD46FCD9BEFBCD3585FB859BD042291AF5D79B6D92CF7B348CD6558A18AEF4328FAF344D63266 iOS代码: NSData *key = [key dataUsingEncoding:NSASCIIStringEncoding]; NSData *rawKeyData = [DataUtil rawDataFromHex:key]; //encode the counter uint8_t tosign[8]; for (int i = sizeof(tosign) – 1; i >= 0; i–) { tosign[i] = counter & 0xff; counter >>= 8; } unsigned char cHMAC[CC_SHA512_DIGEST_LENGTH]; CCHmac(kCCHmacAlgSHA512, [rawKeyData bytes], […]