zoukankan      html  css  js  c++  java
  • Java 二次MD5 32位小写加密算法与php页面加密结果相同

    最近做的一个项目需要使用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的实现吧,直接上代码了,废话就不多说了


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




     

  • 相关阅读:
    IceFig阅读笔记
    sift算法中翻译的第11页中比值问题
    Hessian矩阵
    python使用jieba实现中文文档分词和去停用词
    Hanlp配置自定义词典遇到的问题与解决方法
    HanLP-分类模块的分词器介绍
    elasticsearch教程--中文分词器作用和使用
    HanLP-最短路径分词
    史上最全中文分词工具整理
    NLP自然语言处理中英文分词工具集锦与基本使用介绍
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3161468.html
Copyright © 2011-2022 走看看