[英]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.