? ? // C# 代碼
? ? // var salt = md5Str.Substring(0,6);
? ? // var saltpwd = Encoding.ASCII.GetBytes(salt + pwd);
? ? // var md5 = new MD5CryptoServiceProvider();
? ? // var md5Bytes = md5.ComputeHash(saltpwd);
? ? // var md5Contrast = salt + BytesToHexString(md5Bytes);
? ? // return mdsContrast == md5Str;
iOS 代碼
#import <CommonCrypto/CommonDigest.h>
md5Str:密文 ? ? ? ?pwd:用戶登錄密碼
- (BOOL) MD5Verify:(NSString*)md5Str pwd:(NSString*)pwd
{
?? ?NSString *salt = [md5Str substringWithRange:NSMakeRange(0, 6)];
? ? NSString *salt_pwd = [NSString stringWithFormat:@"%@%@",salt,pwd];
? ? constchar*cStr = [salt_pwdUTF8String];
? ? unsigned char result[CC_MD5_DIGEST_LENGTH];
? ? CC_MD5(cStr, (CC_LONG)strlen(cStr), result);
? ? NSString *resultStr = [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
?? ? ? ? ? ? ? ? ? ? ? ? ? result[0], result[1], result[2], result[3],
?? ? ? ? ? ? ? ? ? ? ? ? ? result[4], result[5], result[6], result[7],
?? ? ? ? ? ? ? ? ? ? ? ? ? result[8], result[9], result[10], result[11],
?? ? ? ? ? ? ? ? ? ? ? ? ? result[12], result[13], result[14], result[15]
?? ? ? ? ? ? ? ? ? ? ? ? ? ];
? ? NSString*mdsContrast = [NSStringstringWithFormat:@"%@%@",salt,resultStr];
?? ?if([mdsContrastisEqualToString:md5Str])
?? ?{
?? ? ? ?returnYES;
? ? }else
? ? {
? ? ? ? returnNO;
? ? }
}