2014-01-20 30 views

回答

0

你使用什麼樣的加密方法?無論如何,你可以生成一個密鑰使用哈希函數如MD5或SHA 256

這裏的MD5函數

-(NSString*) getMD5fromString:(NSString*)baseString 
{ 
    if ([self isNull:baseString]) 
     return nil; 

    const char *cStr = [baseString UTF8String]; 

    unsigned char resultChar[CC_MD5_DIGEST_LENGTH]; 

    CC_MD5(cStr, (CC_LONG)strlen(cStr), resultChar); 
    NSString *md5 = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", 
        resultChar[0], resultChar[1], resultChar[2], resultChar[3], 
        resultChar[4], resultChar[5], resultChar[6], resultChar[7], 
        resultChar[8], resultChar[9], resultChar[10], resultChar[11], 
        resultChar[12], resultChar[13], resultChar[14], resultChar[15]]; 
    return md5; 
} 

這裏SHA256功能

-(NSString*)getSHA256fromString:(NSString*)baseString 
{ 
    const char* str = [baseString UTF8String]; 
    unsigned char result[CC_SHA256_DIGEST_LENGTH]; 
    CC_SHA256(str, (unsigned int)strlen(str), result); 

    NSMutableString *ret = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH*2]; 
    for(int i = 0; i<CC_SHA256_DIGEST_LENGTH; i++) 
    { 
     [ret appendFormat:@"%02x",result[i]]; 
    } 
    return ret; 
} 

例如,你可以生成你的加密/解密密鑰通過這種方式:

NSString* cipherKey = [self getMD5fromString:[NSString stringWithFormat:@"%@_%@",self.loggedUserUuid,self.localMachineName]]; 

通過這種方式,你有一個生成該設備上的該用戶的關鍵影響

希望它有幫助!

+0

thnx盧卡,其實我做了類似的事情,它工作正常,所以這個解決方案看起來也工作 –

相關問題