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;}}
Java 二次MD5 32位小写加密算法与php页面加密结果相同相关推荐
- java md5加密32位小写_Java生成MD5的方法,简单封装并转为32位小写
1 import java.security.MessageDigest; 2 3 public class MD5 { 4 5 public static String toMD5(String p ...
- MD5加密 32位小写
MD5加密 32位小写 MD5 加密,32 位小写 import java.security.MessageDigest;/*** 功能描述: 概述:MD5-32(appKey+timestamp+a ...
- 原创:MD5 32位加密软件
网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想. 网站后台密码加密大多数采用的就是MD5算法加密. 今天给大家送一个本人用c#简单编写的MD5 32位加密程序, ...
- MD5的应用场景以及MD5 32位和16位的区别
MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现.将数据(如汉 ...
- java md5 32位加密算法_java 32位md5加密类
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.security.MessageDigest; import ja ...
- Java最简洁加密32位MD5
因项目中使用了错误的加密方式无法与python集成,故略加修正. 使用java生成32位字符串的MD5: public static String getMD5(String str) {try {/ ...
- Java class不分32位和64位
1.32位JDK编译的java class在32位系统和64位系统下都可以运行,64位系统兼容32位程序,可以理解. 2.无论是Linux还是Windows平台下的JDK编译的java class在L ...
- java 昵称1到32位字符_Java期末考试编程题复习
在程序中定义Person类,为该类编写如下字段.构造器.访问器.修改器和相应的其他方法.(20分) <1>在Person类中定义两个字段: 私有访问权限,类型为String的name字段: ...
- c# php md5 32位加密,C#实现将32位MD5摘要串转换为128位二进制字符串的方法
本文实例讲述了C#实现将32位MD5摘要串转换为128位二进制字符串的方法.分享给大家供大家参考,具体如下: 将32为MD5摘要串转换为128位二进制字符串: /// /// 将字符串转成二进制 // ...
最新文章
- IOS开发基础知识--碎片45
- Linux内核之内核同步(三)——自旋锁
- centos ruby通过rvm更新版本
- ceil--朝正无穷大方向取整
- SpringCloud分布式事务,版本二:添加 Seata 分布式事务版本
- 50本.NTE、C#相关技术书籍免费下载
- jenkins部署java_在Window上使用Jenkins自动部署和上传快照Java工件
- mardown 标题带数字_标题中带有数字的故事更成功吗?
- new关键字对类成员的阻断
- html加载状态,js等待页面加载完成
- 浙大三维视觉团队提出Animatable NeRF,从RGB视频中重建可驱动人体模型 (ICCV'21)
- Android SQL语句实现数据库的增删改查
- python 取模是什么意思_编程语言中,取余和取模的区别到底是什么?
- win10下pycharm+Qtdesigner+Pyqt 成功配置
- php file_get_contents 效率,php 浅析file_get_contents、curl 的效率和稳定性
- 新冠全球蔓延,AI+大数据拿什么拯救全人类? | AI 技术生态论
- jeecgboot 前端环境搭建_94.精读Serverless 给前端带来了什么
- linux安装apache+php+mysql_linux编译安装Apache+PHP+Mysql
- blender 3d打印_使用Blender创建用于打印的3D模型:高级技巧
- python写word报告_使用Python自动生成word巡检报告【二】