问题
I am encoding NSString input using the following code (CC_SHA256). Could someone help me retrieving in decoded format using the same logic?
-(NSString*) encodeAndGetHashInfo :(NSString *) inStringToHashIt
{
NSDate *currentDate = [NSDate date];
NSLog(@"currentDate %@",currentDate);
NSTimeInterval currTimeMillsecs = ([currentDate timeIntervalSince1970] * 1000);
NSString *strCurrTimeMilliSecs = [NSString stringWithFormat:@"%.0f", currTimeMillsecs];
NSLog(@"strCurrTimeMilliSecs: %@", strCurrTimeMilliSecs); //here we are getting millsec in this way 1328962624994.734131
//double currentTime=[strCurrTimeMilliSecs doubleValue];
//Do hashing
NSString *withSalt= [NSString stringWithFormat:@"%@%@%@", strCurrTimeMilliSecs, inStringToHashIt,STATIC_HASH];
NSLog(@"withSalt.%@",withSalt);
NSString *inputStr = withSalt;
unsigned char hashedChars[32];
CC_SHA256([inputStr UTF8String],
[inputStr lengthOfBytesUsingEncoding:NSUTF8StringEncoding],
hashedChars);
NSData * hashedData = [NSData dataWithBytes:hashedChars length:32];
NSLog (@"hashedData:%@",hashedData );
NSString* hashPasswordResponse = NULL;
hashPasswordResponse = [NSString stringWithFormat:@"%@", hashedData];
hashPasswordResponse = [hashPasswordResponse stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"hashPasswordResponse.......%@",hashPasswordResponse);//this string is
return hashPasswordResponse;
}
回答1:
As the others have noted, SHA-1 and the SHA-2 variants are by design one-way hashes. If you can reverse them, the hashes are broken. The hashes are designed to check data integrity, not to provide data encryption.
If you want encryption/decryption as opposed to hashing, you want to use one of CommonCrypto's CCCryptor
routines. See:
Any cocoa source code for AES encryption decryption?
回答2:
You can't SHA is a hashing algoritm, not ment to be decoded.
Like Jonathan Grynspan said, if you could decode sha (any version) would defeat the purpose of such an algorithm.
来源:https://stackoverflow.com/questions/10174536/iphone-os-x-lion-how-to-retrieve-the-decoded-data-from-the-cc-sha256-encrypted