一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

在java中實(shí)現(xiàn)php的md5加密

 quasiceo 2015-06-25

      哥需要趁熱打鐵,被一個(gè)md5加密的問題弄得幾天沒休息好,現(xiàn)在說下事情來由,如果不愿意看我這些問題發(fā)生的經(jīng)過,可以直接跳到最后面的解決方法閱讀:

 

項(xiàng)目?jī)?nèi)容分析:我們公司網(wǎng)站和KU6網(wǎng)合作,使用ku6網(wǎng)的一個(gè)上傳視頻的OPEN API接口。這個(gè)URL接口鏈接有授權(quán)用戶名、密碼、版本號(hào)、視頻標(biāo)題、視頻描述、視頻標(biāo)簽等參數(shù),還有最重要的一個(gè)參數(shù),是通過這些鏈接參數(shù)進(jìn)行MD5加密而得到的。

 

項(xiàng)目語言:我們公司基于JAVA,KU6的接口基于PHP

     

實(shí)現(xiàn)上傳的原理:上傳成功的原理比較簡(jiǎn)單,我們網(wǎng)站生成的MD5,和KU6網(wǎng)接口生成的MD5進(jìn)行匹配就行了。也就是說,除了&md5=這個(gè)參數(shù)以外,其它的參數(shù)必須是一致,因?yàn)槭峭ㄟ^form的post提交,所以中文字符可以不用進(jìn)行編碼,直接進(jìn)入程序進(jìn)行加密提交并返回上傳成功的結(jié)果。

 

出現(xiàn)問題了:但是不管如何都是返回了一個(gè)md5編碼的錯(cuò)誤信息(這個(gè)那個(gè)API接口的一個(gè)錯(cuò)誤提示),這個(gè)問題一直和KU6方提出求援,但是還是沒得到很好的幫助,因項(xiàng)目很緊急,而且這個(gè)問題浪費(fèi)了我兩三天的時(shí)間,最后和老大們討論了一下,會(huì)不會(huì)是java和php的MD5加密方式不一樣導(dǎo)致的?最后經(jīng)過了測(cè)試,對(duì)于英文和數(shù)字的參數(shù),java和php的MD5加密返回結(jié)果是一樣的,但是中文加密后就不一樣了。

 

解決思路:

1、重寫一個(gè)java版的php MD5加密方法,這個(gè)是不太可能的,因?yàn)橐馁M(fèi)太多時(shí)間。(失敗告終)

2、上網(wǎng)找解決方案,很難找,找了很多java的md5中文加密都不能夠返回一個(gè)和php的md5中文加密相同的示例。(失敗告終)

 

解決方式:

      很懊惱中,突然靈光一閃,我能否直接用php的md5方法加密后,把返回的結(jié)果傳到JAVA代碼里面去呢??我立即按照這個(gè)思路去做:

      1、搭建好php的環(huán)境(不作介紹),寫一個(gè)通過提取get參數(shù),并對(duì)值進(jìn)行md5加密的頁面,如下

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

   strtoupper是字母大寫轉(zhuǎn)換的函數(shù)

   md5是MD5加密的函數(shù)

   $_GET["md5str"]就是通過url帶一個(gè)md5str的參數(shù),把值獲取并打印出來

 

      2、JAVA頁面的提交方法

 

Java代碼  收藏代碼
  1.               /** 
  2.  * 用于做PHP的提交處理 
  3.  * @param url 
  4.  */  
  5. public static String phpRequest(String url){  
  6.     try{  
  7.         HttpClient client = new HttpClient();  
  8.         PostMethod post = new PostMethod(url);//使用POST方式提交數(shù)據(jù)  
  9.         post.setRequestHeader("Content-Type","text/html; charset=UTF-8");  
  10.         client.executeMethod(post);  
  11.         String response = new String(post.getResponseBodyAsString().getBytes("8859_1"), "UTF-8");//打印結(jié)果頁面  
  12.         post.releaseConnection();  
  13.         return response;  
  14.     } catch(IOException e){  
  15.         e.printStackTrace();  
  16.         return null;  
  17.     }  
  18. }  

     需要提示的是,url記得先對(duì)中文參數(shù)進(jìn)行一次UTF-8的編碼再傳到這個(gè)方法里面,這個(gè)方法對(duì)響應(yīng)的結(jié)果做了反編碼的處理,最后就能正確的返回php MD5加密后的值了!

 

總結(jié):最終問題是以這種投機(jī)取巧的方式解決的。這要根據(jù)實(shí)際情況去使用,有些網(wǎng)站項(xiàng)目不一定php和jsp的環(huán)境都會(huì)共存,還要考慮到一個(gè)維護(hù)性的問題,最好在java處理這部分功能的代碼上加上注釋和文檔,以便日后維護(hù)!完了,晚安??!


Java的MD5本來加密出來的就是字節(jié)流,只不過是為了閱讀方便又包裝了一層轉(zhuǎn)為字符串。。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    久久精视频免费视频观看| av在线免费观看在线免费观看| 国产精品一区二区视频成人| 黄片免费在线观看日韩| 色偷偷偷拍视频在线观看| 国产精品偷拍视频一区| 男人操女人下面国产剧情| 清纯少妇被捅到高潮免费观看| 国产精品午夜视频免费观看| 亚洲国产黄色精品在线观看| 久久精品久久精品中文字幕| 成年人黄片大全在线观看| 日本高清不卡一二三区| 欧美成人免费视频午夜色| 国产色第一区不卡高清| 激情五月天免费在线观看| 91麻豆精品欧美视频| 亚洲精品小视频在线观看| 日韩欧美三级视频在线| 欧美中文字幕日韩精品| 亚洲欧美国产精品一区二区| 久久亚洲国产视频三级黄| 亚洲视频一区自拍偷拍另类| 亚洲av日韩一区二区三区四区| 草草视频福利在线观看| 欧洲一区二区三区自拍天堂| 久热久热精品视频在线观看| 精品欧美一区二区三久久| 性感少妇无套内射在线视频| 成人精品国产亚洲av久久| 麻豆最新出品国产精品| 欧美一区二区三区五月婷婷| 国产一区国产二区在线视频| 尤物久久91欧美人禽亚洲| 午夜视频免费观看成人| 国产精品一区二区三区黄色片| 五月天丁香亚洲综合网| 欧美加勒比一区二区三区| 国产精品成人又粗又长又爽| 日韩欧美中文字幕av| 欧美日韩国产精品黄片|