IOS端与Java端MD5加密方法

关于NSString的MD5加密,这不难,在网上可以搜到很多算法,主要是跟后台的统一会出问题,对同一段字符串,ios和java加密后的结果可能不一样。现在贴一下ios端和后台java的代码。

java端:

 1 public class test {
 2     public final static String MD5(String s) {
 3           char hexDigits[] = { ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘,
 4             ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘ };
 5           try {
 6                byte[] strTemp = s.getBytes();
 7                MessageDigest mdTemp = MessageDigest.getInstance("MD5");
 8                mdTemp.update(strTemp);
 9                byte[] md = mdTemp.digest();
10                int j = md.length;
11                char str[] = new char[j * 2];
12                int k = 0;
13                for (int i = 0; i < j; i++) {
14                     byte byte0 = md[i];
15                     str[k++] = hexDigits[byte0 >>> 4 & 0xf];
16                     str[k++] = hexDigits[byte0 & 0xf];
17                }
18                return new String(str);
19               } catch (Exception e) {
20                return null;
21               }
22          }
23
24     //测试
25     public static void main(String[] args) {
26         String testStr = "1";
27         String resultStr = MD5(testStr);
28         System.out.println(resultStr);
29     }
30 }

IOS端,.h文件

@interface NSString_MD5 : NSObject

+(NSString *)stringToMD5:(NSString *)inputStr;

@end

.m文件

 1 #import "CommonCrypto/CommonDigest.h"
 2
 3 @implementation NSString_MD5
 4
 5 +(NSString *)stringToMD5:(NSString *)inputStr{
 6     const char *cStr = [inputStr UTF8String];
 7     unsigned char result[CC_MD5_DIGEST_LENGTH];
 8     CC_MD5(cStr, strlen(cStr), result);
 9     NSString *resultStr = [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
10                            result[0], result[1], result[2], result[3],
11                            result[4], result[5], result[6], result[7],
12                            result[8], result[9], result[10], result[11],
13                            result[12], result[13], result[14], result[15]
14                            ];
15     return [resultStr lowercaseString];
16 }
17
18 @end

然后使用时可以这样,

NSString *pwd = [NSString_MD5 stringToMD5:@"sss"];

用这两种方法,可以达到ios端和java端加密后的结果一致。

时间: 2024-10-13 22:23:12

IOS端与Java端MD5加密方法的相关文章

java中md5加密方法

package com.func; import java.io.UnsupportedEncodingException;import java.math.BigInteger;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException; public class Md5 { public static String getMd5(String plainText) { try { Messa

.net系统的MD5加密方法

/// <summary>/// .net系统的MD5加密方法/// </summary>/// <param name="strIN"></param>/// <returns></returns>public string MD5System(string strIN){    return strIN.IsNullOrEmpty() ? "" : System.Web.Security.F

Java实现MD5加密及解密的代码实例分享

链接:http://www.jb51.net/article/86027.htm Java实现MD5加密及解密的代码实例分享 作者:厦门大学陈黎栋 字体:[增加 减小] 类型:转载 时间:2016-06-07我要评论 如果对安全性的需求不是太高,MD5仍是使用非常方便和普及的加密方式,比如Java中自带的MessageDigest类就提供了支持,这里就为大家带来Java实现MD5加密及解密的代码实例分享: 基础:MessageDigest类的使用 其实要在Java中完成MD5加密,Message

Loadrunner进行md5加密方法

本文主要介绍使用Loadrunner进行字符串md5加密的方法. 使用Loadrunner进行md5比较简单,首先是加载md5.h头文件,后使用头文件中的加密函数即可. 1. md5.h头文件内容如下 #ifndef MD5_H #define MD5_H #ifdef __alpha typedef unsigned int uint32; #else typedef unsigned long uint32; #endif struct MD5Context { uint32 buf[4];

java实现md5加密

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2.MD3和MD4发展而来. 一.使用md5加密密码 我们先用java去实现md5加密密码,再去研究一下md5的原理以及他的优缺点. 1.新建MD5.java文件 package com.creditease.bixin.common.

JAVA中MD5加密实现

MD5加密实现  结 package com.pb; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Scanner; /* * 验证MD5 * 1.初始化MessageDigest信息摘要对象 * 2.传入需要计算的字符串更新摘要信息 * 3.计算信息摘要

DES/AES/MD5加密方法

大家好: 今天有空研究了下大家都在喊的AES加密!还以为是什么深奥的东西呢!终于了解了,心中释然了!跟大家一起分享下吧!DES其实就是:数据加密标准 英文的缩写!就是个加密的标注而已,AES就是 高级加密标准 英文的缩写咯,大家都叫缩写叫惯了,搞得我们这些没接触的人一头雾水!心里还真憋屈的慌呢! 这是在搜集资料的时候拿了个例子练手,不过有个问题就是,把这代码放到文本里用CMD运行的时候出现了乱码情况!所幸的是注释,不影响效果!但是,程序要真遇到这样的情况的话,就得转码了,因为文本的编码是GBK的

Java实现MD5加密和文件校验

MD5简介: MD5的全称:Message-Digest Algorithm 5(信息-摘要算法5) MD5的加密方式是一种哈希加密.一些主流的编程语言都已经实现了MD5的加密,所以如果你的程序或是系统涉及到在多种语言之间的校验,那么MD5可以是备选之一.不过因为MD5是采用哈希函数来进行的加密,所以它无关密钥,也就是说在确定了明文的情况下,MD5就可以加密.不过MD5是不可逆的,只能加密,不能解密. MD5加密字符串: public class Md5Util { // 标准的构造函数,调用m

java 采用MD5加密解密

MD5加密解密 package endecrypt; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 采用MD5加密解密 * @author tfq * @datetime 2011-10-13 */ public class MD5Util { /*** * MD5加码 生成3