最近做的一个项目需要使用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;}}

Java 二次MD5 32位小写加密算法与php页面加密结果相同相关推荐

  1. java md5加密32位小写_Java生成MD5的方法,简单封装并转为32位小写

    1 import java.security.MessageDigest; 2 3 public class MD5 { 4 5 public static String toMD5(String p ...

  2. MD5加密 32位小写

    MD5加密 32位小写 MD5 加密,32 位小写 import java.security.MessageDigest;/*** 功能描述: 概述:MD5-32(appKey+timestamp+a ...

  3. 原创:MD5 32位加密软件

    网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想. 网站后台密码加密大多数采用的就是MD5算法加密. 今天给大家送一个本人用c#简单编写的MD5 32位加密程序, ...

  4. MD5的应用场景以及MD5 32位和16位的区别

    MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现.将数据(如汉 ...

  5. java md5 32位加密算法_java 32位md5加密类

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.security.MessageDigest; import ja ...

  6. Java最简洁加密32位MD5

    因项目中使用了错误的加密方式无法与python集成,故略加修正. 使用java生成32位字符串的MD5: public static String getMD5(String str) {try {/ ...

  7. Java class不分32位和64位

    1.32位JDK编译的java class在32位系统和64位系统下都可以运行,64位系统兼容32位程序,可以理解. 2.无论是Linux还是Windows平台下的JDK编译的java class在L ...

  8. java 昵称1到32位字符_Java期末考试编程题复习

    在程序中定义Person类,为该类编写如下字段.构造器.访问器.修改器和相应的其他方法.(20分) <1>在Person类中定义两个字段: 私有访问权限,类型为String的name字段: ...

  9. c# php md5 32位加密,C#实现将32位MD5摘要串转换为128位二进制字符串的方法

    本文实例讲述了C#实现将32位MD5摘要串转换为128位二进制字符串的方法.分享给大家供大家参考,具体如下: 将32为MD5摘要串转换为128位二进制字符串: /// /// 将字符串转成二进制 // ...

最新文章

  1. IOS开发基础知识--碎片45
  2. Linux内核之内核同步(三)——自旋锁
  3. centos ruby通过rvm更新版本
  4. ceil--朝正无穷大方向取整
  5. SpringCloud分布式事务,版本二:添加 Seata 分布式事务版本
  6. 50本.NTE、C#相关技术书籍免费下载
  7. jenkins部署java_在Window上使用Jenkins自动部署和上传快照Java工件
  8. mardown 标题带数字_标题中带有数字的故事更成功吗?
  9. new关键字对类成员的阻断
  10. html加载状态,js等待页面加载完成
  11. 浙大三维视觉团队提出Animatable NeRF,从RGB视频中重建可驱动人体模型 (ICCV'21)
  12. Android SQL语句实现数据库的增删改查
  13. python 取模是什么意思_编程语言中,取余和取模的区别到底是什么?
  14. win10下pycharm+Qtdesigner+Pyqt 成功配置
  15. php file_get_contents 效率,php 浅析file_get_contents、curl 的效率和稳定性
  16. 新冠全球蔓延,AI+大数据拿什么拯救全人类? | AI 技术生态论
  17. jeecgboot 前端环境搭建_94.精读Serverless 给前端带来了什么
  18. linux安装apache+php+mysql_linux编译安装Apache+PHP+Mysql
  19. blender 3d打印_使用Blender创建用于打印的3D模型:高级技巧
  20. python写word报告_使用Python自动生成word巡检报告【二】

热门文章

  1. 昨日关注-你说过的每一句话
  2. LinkedList源码(基础代码)
  3. SSH远程管理(用户登录控制及密码验证)
  4. 折腾了一晚上Windows网络却未果
  5. 在vscode中使用pylint-django插件解决pylint的一些不必要的错误提示【转】
  6. (tomcat访问不了的两种解决方法)Bad Request(Invalid Hostname)
  7. 一起谈.NET技术,.NET Framework源码研究系列之---万法归宗Object
  8. 在Linux server上建立NAS文件服务器
  9. webpack之 loader
  10. Kubernetes容器编排的三大支柱