自定义MD5加密

来源:互联网 发布:矩阵相似和合同的区别 编辑:程序博客网 时间:2024/05/24 04:23

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;        }    }



0 0
原创粉丝点击