如何将NSString哈希到SHA512

我有一个简单的问题…我正在构建一个社交媒体网站应用程序,我需要哈希密码NSString。 我怎么做到这一点? 我在应用程序上有密码字段,并希望散列字符串并在SHA512中对POST请求进行编码。 提前谢谢,TechnologyGuy

已经回答: 使用SHA512散列密码字符串,如C#

但这是复制粘贴的代码:

#include  + (NSString *) createSHA512:(NSString *)source { const char *s = [source cStringUsingEncoding:NSASCIIStringEncoding]; NSData *keyData = [NSData dataWithBytes:s length:strlen(s)]; uint8_t digest[CC_SHA512_DIGEST_LENGTH] = {0}; CC_SHA512(keyData.bytes, keyData.length, digest); NSData *out = [NSData dataWithBytes:digest length:CC_SHA512_DIGEST_LENGTH]; return [out description]; } 

或者,如果您更喜欢散列输出,请尝试以下方法:

 +(NSString *)createSHA512:(NSString *)string { const char *cstr = [string cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:string.length]; uint8_t digest[CC_SHA512_DIGEST_LENGTH]; CC_SHA512(data.bytes, data.length, digest); NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA512_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA512_DIGEST_LENGTH; i++) [output appendFormat:@"%02x", digest[i]]; return output; } 
 + (NSData *)sha512:(NSData *)data { unsigned char hash[CC_SHA512_DIGEST_LENGTH]; if ( CC_SHA512([data bytes], [data length], hash) ) { NSData *sha1 = [NSData dataWithBytes:hash length:CC_SHA512_DIGEST_LENGTH]; return sha1; } return nil; } 

把它放在NSData一个类别中,或者以你喜欢的方式使用它,代码保持不变。

你应该研究你的问题。 我在一次谷歌搜索中找到了答案。