`
joewalker
  • 浏览: 211254 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在java中实现php的md5加密

阅读更多

      哥需要趁热打铁,被一个md5加密的问题弄得几天没休息好,现在说下事情来由,如果不愿意看我这些问题发生的经过,可以直接跳到最后面的解决方法阅读:

 

项目内容分析:我们公司网站和KU6网合作,使用ku6网的一个上传视频的OPEN API接口。这个URL接口链接有授权用户名、密码、版本号、视频标题、视频描述、视频标签等参数,还有最重要的一个参数,是通过这些链接参数进行MD5加密而得到的。

 

项目语言:我们公司基于JAVA,KU6的接口基于PHP

     

实现上传的原理:上传成功的原理比较简单,我们网站生成的MD5,和KU6网接口生成的MD5进行匹配就行了。也就是说,除了&md5=这个参数以外,其它的参数必须是一致,因为是通过form的post提交,所以中文字符可以不用进行编码,直接进入程序进行加密提交并返回上传成功的结果。

 

出现问题了:但是不管如何都是返回了一个md5编码的错误信息(这个那个API接口的一个错误提示),这个问题一直和KU6方提出求援,但是还是没得到很好的帮助,因项目很紧急,而且这个问题浪费了我两三天的时间,最后和老大们讨论了一下,会不会是java和php的MD5加密方式不一样导致的?最后经过了测试,对于英文和数字的参数,java和php的MD5加密返回结果是一样的,但是中文加密后就不一样了。

 

解决思路:

1、重写一个java版的php MD5加密方法,这个是不太可能的,因为要耗费太多时间。(失败告终)

2、上网找解决方案,很难找,找了很多java的md5中文加密都不能够返回一个和php的md5中文加密相同的示例。(失败告终)

 

解决方式:

      很懊恼中,突然灵光一闪,我能否直接用php的md5方法加密后,把返回的结果传到JAVA代码里面去呢??我立即按照这个思路去做:

      1、搭建好php的环境(不作介绍),写一个通过提取get参数,并对值进行md5加密的页面,如下

   <?php echo strtoupper(md5($_GET["md5str"])); ?>

   strtoupper是字母大写转换的函数

   md5是MD5加密的函数

   $_GET["md5str"]就是通过url带一个md5str的参数,把值获取并打印出来

 

      2、JAVA页面的提交方法

 

               /**
	 * 用于做PHP的提交处理
	 * @param url
	 */
	public static String phpRequest(String url){
		try{
			HttpClient client = new HttpClient();
			PostMethod post = new PostMethod(url);//使用POST方式提交数据
			post.setRequestHeader("Content-Type","text/html; charset=UTF-8");
	        client.executeMethod(post);
	        String response = new String(post.getResponseBodyAsString().getBytes("8859_1"), "UTF-8");//打印结果页面
	        post.releaseConnection();
	        return response;
		} catch(IOException e){
			e.printStackTrace();
			return null;
		}
	}

     需要提示的是,url记得先对中文参数进行一次UTF-8的编码再传到这个方法里面,这个方法对响应的结果做了反编码的处理,最后就能正确的返回php MD5加密后的值了!

 

总结:最终问题是以这种投机取巧的方式解决的。这要根据实际情况去使用,有些网站项目不一定php和jsp的环境都会共存,还要考虑到一个维护性的问题,最好在java处理这部分功能的代码上加上注释和文档,以便日后维护!完了,晚安!!

 

 

 

2
2
分享到:
评论

相关推荐

    java MD5密码加密

    java MD5密码加密.

    JS前台加密,java后台解密实现

    JavaScript提供了多种加密库和算法来实现这一目标,例如使用AES(高级加密标准)、RSA(公钥加密技术)或MD5(消息摘要算法5)等。 1. **AES加密**:AES是一种块加密算法,适用于大量数据的快速加密。在JavaScript...

    mysql与mssql的md5加密语句

    您可能感兴趣的文章:MySQL加密和解密实例详解Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享PHP MySQL应用中使用XOR运算加密算法分享MySQL 加密/压缩函数mysql双向加密解密方式用法详解MySQL 整表加密...

    MD5加密调用 数据库存加密数据

    开发者可以方便地在代码中调用这些工具来实现MD5加密。 在软件开发中,确保用户数据安全是非常重要的,MD5加密只是其中的一种手段。还有其他安全措施,如使用HTTPS传输数据,定期更换数据库访问密钥,以及实施多...

    Android md5加密与php md5加密一致详解

    在Android开发过程中加密密码常常采用md5加密方式,然而如果服务器端采用PHP开发(php采用md5加密很简单,直接md5($str)),很可能与Java的md5加密不一致。以下方法是md5加密与php一致的源码: import java.math....

    WebService服务使用Md5和SHA1加密验证登陆

    在WebService使用Md5和SHA1加密技术对用户密码进行加密处理,从而增加用户安全性。登陆判断同样通过Md5和SHA1加密密码然后和数据库经过加密密码进行比较来(它们可都是二进制滴哦!)验证用户是否存在 很好滴东西 ...

    javaMD5加密代码

    javaMD5加密文件

    使用RSA、MD5对参数生成签名及接收方验签

    总结来说,"使用RSA、MD5对参数生成签名及接收方验签"是一个典型的数字签名应用场景,结合了非对称加密和哈希函数的优点,实现了数据传输的安全性。在实际操作中,根据安全性需求,可以选择更安全的替代算法,如使用...

    MD5加密及第三方支付接口的技术比较

    为了确保交易的安全性和准确性,参数在传输过程中需要经过特殊处理,通常采用MD5加密算法。 **MD5加密简介:** MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,可以将任意长度的数据转换为一个固定...

    Python实现的HMacMD5加密算法示例

    主要介绍了Python实现的HMacMD5加密算法,简单说明了HMAC-MD5加密算法的概念、原理并结合实例形式分析了Python实现HMAC-MD5加密算法的相关操作技巧,,末尾还附带了Java实现HMAC-MD5加密算法的示例,需要的朋友可以参考...

    方便的大家admin及admin888 经过 md5加密后16位和32位代码

    面是 admin 的加密代码: 16位加密:7a57a5a743894a0e 32位加密:21232f297a57a5a743894a0e4... 您可能感兴趣的文章:java实现MD5加密算法的实例代码java开发之MD5加密算法的实现VBS MD5加密算法代码php实现MD5加密1

    基于PHP实现的md5在线加密工具 v1.0_md5_工具查询(PHP源代码+html)

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

    php实现MD5加密16位(不要默认的32位)

    在其他语言中,如Java、Python或Node.js,实现类似的16位MD5散列也涉及到类似的截取操作。在Node.js中,如果MD5的结果是32位的十六进制字符串,那么可以使用`slice()`方法达到相同的效果。例如: ```javascript ...

    基于PHP实现的md5在线加密工具 v1.0_md5_工具查询(PHP源代码+html).zip

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

    基于PHP实现的md5在线加密工具 v1.0_md5_工具查询(PHP源代码+html+毕业设计).zip

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

Global site tag (gtag.js) - Google Analytics