// 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;
}
}
网友评论