2012-02-26 25 views
10

Cho thông báo và muối làm thế nào tôi có thể mã hóa nó trở về chuỗi băm?Làm thế nào để SHA băm trong ca cao/iOS

tôi cần tái tạo các chức năng php:

hash_hmac('sha256','message','salt'); 

Cảm ơn

+1

Câu hỏi này có một câu trả lời rằng có vẻ tốt: http://stackoverflow.com/ câu hỏi/6228092/how-can-i-compute-a-sha-2-lý tưởng-sha-256-or-sha-512-băm-in-ios – Bogatyr

+1

Vâng nhưng không biết cách sử dụng muối ... – Addev

Trả lời

39

Tìm thấy câu trả lời:

#import <CommonCrypto/CommonHMAC.h> 

-(NSString *) hashString :(NSString *) data withSalt: (NSString *) salt { 


    const char *cKey = [salt cStringUsingEncoding:NSUTF8StringEncoding]; 
    const char *cData = [data cStringUsingEncoding:NSUTF8StringEncoding]; 
    unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH]; 
    CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC); 

    NSString *hash; 

    NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH * 2]; 

    for(int i = 0; i < CC_SHA256_DIGEST_LENGTH; i++) 
     [output appendFormat:@"%02x", cHMAC[i]]; 
    hash = output; 
    return hash; 

} 
Các vấn đề liên quan