加密方法如下
- (NSString *)HmacSha1WithSecret:(NSString *)key
{
const char *cKey = [key cStringUsingEncoding:NSASCIIStringEncoding];
const char *cData = [self cStringUsingEncoding:NSASCIIStringEncoding];
unsigned char cHMAC[CC_SHA1_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)];
NSString *hash = [QNUrlSafeBase64 encodeData:HMAC];
return hash;
}
MD5,SHA-1,SHA-224,SHA-256,SHA-384,SHA-512,以及它們對應的HMAC演算法,都屬於雜湊演算法,又叫摘要演算法,單向運算,不可逆,所以沒法解密。但是可以透過暴力方式破解(依序產生字串一個個試),當然會花非常長的時間,而且這個試出來的結果也不一定是原結果,因為的確存在多個來源資料能計算出相同散列結果的情況。