Java 二次MD5 32位小写加密算法与php页面加密结果相同
2013-06-28 19:01
686 查看
最近做的一个项目需要使用MD5加密算法,需要加密的参数有两个。自己先试了几次,算的结果为php页面的不一样,后来与写php页面的同事沟通后,了解到php页面的算法如下:
action = "secondMD5";
key = "VOD_MOVE";
md5($action.$key)
即先使用key进行一次MD5加密,$key = md5("VOD_MOVE")加密结果为:cafa20f4232c530872f9ba796d6eaa84
然后时间key加密得到的结果与action再进行一次加密,即md5("secondMD5cafa20f4232c530872f9ba796d6eaa84")
加密的结果为:b787b45af6b846e7a6850aa5891cf132
容易犯的错误是直接md5("secondMD5VOD_MOVE"),加密结果为:e3c8de32fc29ea803e9615ab348d45b3
这样的算法算出来的结果始终是错误的。一般如果算出来的结果与后台不一致,最好的办法就是即时找到后台工作人员,与其沟通,这样效率会很高。
下面说一下java的实现吧,直接上代码了,废话就不多说了
action = "secondMD5";
key = "VOD_MOVE";
md5($action.$key)
即先使用key进行一次MD5加密,$key = md5("VOD_MOVE")加密结果为:cafa20f4232c530872f9ba796d6eaa84
然后时间key加密得到的结果与action再进行一次加密,即md5("secondMD5cafa20f4232c530872f9ba796d6eaa84")
加密的结果为:b787b45af6b846e7a6850aa5891cf132
容易犯的错误是直接md5("secondMD5VOD_MOVE"),加密结果为:e3c8de32fc29ea803e9615ab348d45b3
这样的算法算出来的结果始终是错误的。一般如果算出来的结果与后台不一致,最好的办法就是即时找到后台工作人员,与其沟通,这样效率会很高。
下面说一下java的实现吧,直接上代码了,废话就不多说了
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Md5 { public static void main(String[] args) { String str = encryption("VOD_MOVE"); System.out.println("一次加密Md5(VOD_MOVE)结果:" + str); String string = encryption("secondMD5" + str); System.out.println("二次加密Md5(secondMD5" + str + ")结果:" + string); } /** * * @param plain 明文 * @return 32位小写密文 */ public static String encryption(String plain) { String re_md5 = new String(); try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(plain.getBytes()); byte b[] = md.digest(); int i; StringBuffer buf = new StringBuffer(""); for (int offset = 0; offset < b.length; offset++) { i = b[offset]; if (i < 0) i += 256; if (i < 16) buf.append("0"); buf.append(Integer.toHexString(i)); } re_md5 = buf.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return re_md5; } }
相关文章推荐
- Java 二次MD5 32位小写加密算法与php页面加密结果相同
- 关于php MD5加密 与java MD5 加密结果不一致的问题
- Java md5加密 控制台传入与web传入参数 结果不匹配 || 相同字符串加密结果不同,如何保证JAVA MD5加密结果在不同的环境下都相同
- Java md5加密 控制台传入与web传入参数 结果不匹配 || 相同字符串加密结果不同,如何保证JAVA MD5加密结果在不同的环境下都相同
- javascript md5 二次加密 和 java md5 二次加密结果不同
- MD5 32位 小写加密和大写加密
- [加密]JAVA与.NET加密结果相同的MD5算法
- 计算md5的C++代码(与java结果相同)
- c#Md5 32位加密结果少了两个0的原因
- android:MD5 32位16位小写加密
- php md5加密16位32位的实现代码
- PHP 和 Android MD5 加密出来结果是一样的代码
- java MD5 加密(16位/32位)
- Java 编程下字符串的 16 位、32位 MD5 加密
- 【Java】String经MD5加密后的32位输出
- Java MD5 32位加密代码
- Java 编程下字符串的 16 位、32位 MD5 加密
- Java最简洁加密32位MD5
- MD5 32位 小写加密和大写加密
- Android:MD5 32位 16位小写加密