1.Objective-c 代码
#import <CommonCrypto/CommonDigest.h>
+ (NSString *) md5:(NSString *)oldString {
const char *cStr = [oldString UTF8String];
unsigned char result[16];
CC_MD5( cStr, strlen(cStr), result );
unsigned char str[32];
char hexDigits[]={'2','0','1','5','V','T','H','A','P','P','0','6','A','T','0','1'};
int k = 0;
for (int i = 0; i < 16; i++) {
Byte byte0 = result[i];
str[k++] = hexDigits[byte0>>4& 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
NSString *mdString =@"";
for (int i=0; i<32; i++) {
mdString= [mdString stringByAppendingString:[NSString stringWithFormat:@"%c",str[i]]];
}
return mdString;
}
2.Java代码
public static String getEncryptedStr(String s) {
char hexDigits[]={'2','0','1','5','V','T','H','A','P','P','0','6','A','T','0','1'};
try {
byte[] btInput = s.getBytes();
// 获得MD5摘要算法的 MessageDigest 对象
MessageDigest mdInst = MessageDigest.getInstance("MD5");
// 使用指定的字节更新摘要
mdInst.update(btInput);
// 获得密文
byte[] md = mdInst.digest();
// 把密文转换成十六进制的字符串形式
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}