我有一個需要與作爲登錄的Web服務集成。散列需要在客戶端上生成。我能夠產生正確的散列作爲NSMutableData,但是隨後我需要將它轉換爲字符串,而不會在輸出控制檯中將NSMutableData對象呈現爲字符串時產生空格或括號。我已經閱讀了幾篇文章,看起來都是這麼說的:將Sha256哈希值轉換爲NSString
NSString *newstring = [[NSString alloc] initWithDSata:dataToConvert encoding:NSUTF8StringEncoding];
不幸的是,這並不適用於我。使用NSUTF8StringEncoding返回null。 NSASCIIStringEncoding更糟。
這裏是我的代碼:
NSString *password = [NSString stringWithFormat:@"%@%@", kPrefix, [self.txtPassword text]];
NSLog(@"PLAIN: %@", password);
NSData *data = [password dataUsingEncoding:NSASCIIStringEncoding];
NSMutableData *sha256Out = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH];
CC_SHA256(data.bytes, data.length, sha256Out.mutableBytes);
NSString *preppedPassword = [[NSString alloc] initWithData:sha256Out encoding:NSASCIIStringEncoding];
NSLog(@"HASH: %@\n", preppedPassword);
我怎麼能轉換NSMutableData串?
我的問題是,我需要從這個
< 7e8df5b3 17c99263 e4fe6220 bb75b798 4a41de45 44464ba8 06266397 f165742e>
這個
7e8df5b317c99263e4fe6220bb75b7984a41de4544464ba806266397f165742e
Base64編碼。 – 2013-04-25 20:29:16
@HotLicks:不,那只是十六進制,而不是base64。 – duskwuff 2013-04-25 21:52:55