簡體   English   中英

在iOS上使用SHA256哈希

[英]Working with SHA256 hashing on iOS

我在SO上至少看了6頁關於iOS和SHA256的頁面,但我仍然不知道發生了什么。

通常,我習慣使用hash()函數在PHP中執行SHA256,它返回的字符串值如下: db1204372d8d9f14acc608b497227047d63ad868987883d0a29198be8e6ce853

我試圖在我的iOS應用程序中實現SHA256,以增強應用程序和服務器之間的安全性,但是編碼部分讓我頭疼。

我正在使用NSData類別:

+ (NSData *)sha256:(NSData *)data {

NSMutableData *out = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH];

CC_SHA256(data.bytes, data.length,  out.mutableBytes);

if ( CC_SHA256(data.bytes, data.length, out.mutableBytes) ) return out;

return nil;
}

但是,無論我如何嘗試將生成的NSData對象編碼為NSString(以發送到服務器),我最終都會得到一個類似於ã°ÄBüûôÈo¹$'®AädL¤xR¸U

我的問題-如何實現與hash行為相同的類別,以便將相同的值傳遞給任一方法都應產生相同的值?

謝謝你的幫助

抱歉,我參加聚會很晚。

您從php獲得的結果是每個字節的十六進制值的串聯。 您從ios獲得的值是實際的字節字符串。

我懷疑您正在使用類似[[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding]的字符串。

但是,您應該按照[data description] 如何將NSdata轉換為十六進制字符串 [data description]中所述使用[data description]NSData轉換為所需的形式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM