嗨,有没有人有一个工作的SHA512 iOS实现?这些代码似乎不像我在php上生成的代码那样。
<?php
$code = hash("SHA512", '123' . '123' );
echo $code;
?>263fec58861449aacc1c328a4aff64aff4c62df4a2d50b3f207fa89b6e242c9aa778e7a8baeffef85b6ca6d2e7dc16ff0a760d59c13c238f6bcdc32f8ce9cc62 输出:
- (NSString *) sha512:(NSString *) input withSalt: (NSString *) salt {
const char *cKey = [salt cStringUsingEncoding:NSUTF8StringEncoding];
const char *data = [input cStringUsingEncoding:NSUTF8StringEncoding];
unsigned char digest[CC_SHA512_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA512, cKey, strlen(cKey), data, strlen(data), digest);
NSString *hash;
NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA512_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA512_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
hash = output;
return hash;}
[self sha512:@"123" withSalt:@"123"];3cafe40f92be6ac77d2792b4b267c2da11e3f3087b93bb19c6c5133786984b44 输出:
发布于 2013-09-17 20:44:07
您的代码有两个问题:
发布于 2013-09-17 20:34:09
您在iOS上使用HMAC,您需要使用SHA和连接"123“和"123”,就像对php一样。HMAC不只是连接密钥和数据。
用途:#import <CommonCrypto/CommonDigest.h>
extern unsigned char *CC_SHA512(const void *data, CC_LONG len, unsigned char *md)
发布于 2013-09-17 22:31:46
编辑了php代码:
hash_hmac('SHA512', '123', '123' );这解决了问题。谢谢!
https://stackoverflow.com/questions/18859005
复制相似问题