• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java二次MD532位小写加密算法与php页面加密结果相同

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近做的一个项目需要使用MD5加密算法,需要加密的参数有两个。自己先试了几次,算的结果为php页面的不一样,后来与写php页面的同事沟通后,了解到php页面的算法如下:

action = "secondMD5";

key = "VOD_MOVE";

md5($action.$key)

即先使用key进行一次MD5加密,$key = md5("VOD_MOVE")加密结果为:cafa20f4232c530872f9ba796d6eaa84

然后时间key加密得到的结果与action再进行一次加密,即md5("secondMD5

加密的结果为: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;
	}

}




 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP百分号转小数,php小数转换百分数函数发布时间:2022-07-10
下一篇:
php每天一题:strlen()与mb_strlen()的作用分别是什么发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap