java php base64 使用差別 使用注意
在開發的時候遇到個現象。對方用php base64_encode() 對字串進行加密。但我這邊是用java解碼。導致出現問題。問題如下:
package com.tudou.test; import java.io.IOException; /** * <p>java base64編碼和解碼的演示類 * 注:base64編碼後通過url傳遞時,獲得時"="會給替換掉, * 處理方式:在編碼前將"=","/","+" 替換成別的字元,在解碼之前替換回來 * </p> * @author tw 2010-03-01 * */ public class TestBase64Net { /** * 編碼 * @param filecontent * @return String */ public static String encode(byte[] bstr){ return new sun.misc.BASE64Encoder().encode(bstr); } /** * 解碼 * @param filecontent * @return string */ public static byte[] decode(String str){ byte[] bt = null; try { sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); bt = decoder.decodeBuffer( str ); } catch (IOException e) { e.printStackTrace(); } return bt; } /** * @param args */ public static void main(String[] args) { TestBase64Net te = new TestBase64Net(); //PHP 用base64 將union_id=102155_100001_01_01 加密後的字串為: dW5pb25faWQ9MTAyMTU1XzEwMDAwMV8wMV8wMQ //java 用sun.misc.BASE64Encoder().encode()進行解碼,結果為:union_id=102155_100001_01_01亂碼0 System.out.println(new String(te.decode("dW5pb25faWQ9MTAyMTU1XzEwMDAwMV8wMV8wMQ"))); //java 用sun.misc.BASE64Decoder 將union_id=102155_100001_01_01進行加密,結果為:dW5pb25faWQ9MTAyMTU1XzEwMDAwMV8wMV8wMQ== System.out.println(new String(te.encode("union_id=102155_100001_01_01".getBytes()))); } }
經過對比不難發現用php的base64_encode() 方法進行加密,JAVA 不能用sun.misc.BASE64Encoder().encode() 進行解密。那該怎麼辦?!
可以用apache的commons包 commons-codec-1.7.jar 中的org.apache.commons.codec.binary.Base64 進行解密。
import org.apache.commons.codec.binary.Base64; public class TestBase64 { public static void main(String[] args) { System.out.println(new String(Base64.decodeBase64("dW5pb25faWQ9MTAyMTU1XzEwMDAwMV8wMV8wMQ".getBytes()))); } }
相關推薦
java php base64 使用差別 使用注意
在開發的時候遇到個現象。對方用php base64_encode() 對字串進行加密。但我這邊是用java解碼。導致出現問題。問題如下: package com.tudou.test; import java.io.IOException; /** *
HMAC-SHA1簽名演算法(JAVA和PHP) base64簽名演算法(PHP)
HMAC 根據RFC 2316(Report of the IAB,April 1998),HMAC(雜湊訊息身份驗證碼: Hashed Message Authentication Code)以及IPSec被認為是Interact安全的關鍵性核心協議。它不是雜湊函式,而是採用了將MD5或S
HMAC-SHA1簽名演算法(JAVA和PHP) base64簽名演算法(PHP)
HMAC 根據RFC 2316(Report of the IAB,April 1998),HMAC(雜湊訊息身份驗證碼: Hashed Message Authentication Code)以及IPSec被認為是Interact安全的關鍵性核心協議。它不是雜湊函式,而是
成都傳智播客Java/PHP培訓就業率高
lan 培訓課程 ref -s size unit str 學生 http 依據傳智播客的數據統計,傳智播客的學員有五分之中的一個的能在畢業前找到愜意的工作,一半的學員能在畢業後一個月之內找到愜意的工作,一般在畢業後兩個月之內絕大多數同學都能找到愜意的工作。而且傳智播客
java中 ++前後差別試題及靜態變量一旦賦值不可改變
strong string 變量 void system 自身 mod span n) package javaTest; public class Increment { private static int k=0; public static void m
JAVA實現Base64編碼的三種方式
ack ons static nts bstr clas [] ram trace 摘要: Javabase64編碼的三種方式 有如下三種方式: 方式一:commons-codec.jar Java代碼 1. String base64String="whuang12
java,php,js;AES 互通加解密
str 知識庫 clipboard byte sys pbo rep decrypte view 1,Java端(依賴 common-codec jar) [java] view plain copy package com.jiaMi; imp
java 圖片base64互轉
++ pan 測試 class encoder col rgs 路徑 div public class ImgBase64 { public static void main(String[] args) //測試 {
通過php base64函數進行加密解密
process 剛才 com 定義 code pst alt watermark ext 通過php base64函數進行加密解密 實驗環境:windowsphp環境 (phpStudy一鍵環境包) 把測試的php文件放到此目錄下
php base64上傳圖片
php base64上傳圖片 $ymd = date("Ymdhis"); //圖片路徑地址 $img = str_replace(‘data:image/png;base64,‘, ‘‘, $img); $img = s
axis2 webservice入門知識(JS,Java,PHP調用實例源碼)
aar XML div .net conf 總結 syn setoption addchild 背景簡介 最近接觸到一個銀行接口的案子,臨時需要用到axis2 webservice。自己現學現總結的一些東西,留給新手。少走彎路。 Axis2簡介 ①采用名為 AXIOM(AX
Apache+php+MySQL 安裝注意細節及常見錯誤
1: 完成apache的安裝(一路預設) 1> 修改httpd.conf 中documentroot 為 E:\web server\Apache24\htdocs (即你的網站存放目錄) 有的直接修改這一行的 Define SRVROOT "E:\web server\Apache24",則
**Java實現Base64加密**
package com.beiruan.test; import org.apache.commons.codec.binary.Base64; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public clas
java 讀取 MySQL timestamp 注意
timestamp 讀取出來syso列印沒啥毛病 但是在頁面上顯示就來問題了[Object,Object], ennn,學藝不精的我滿腦子what?趕緊的去長了長見識,查詢timestamp 型別欄位時有必要將其‘包裝一哈’,比如查詢Att_date欄位 其型別為time
面試題 - 使用Java泛型要注意什麼
1、不能使用基本資料型別如int,而是使用Integer等包裝型別; 2、<T>這種,T是要使用大寫的T,而不能使用小寫 3、泛型類不可以繼承Ex
Java實現Base64編解碼
為什麼要用Base64編碼 在網路中傳輸資料都是使用ascii方式傳輸。對於一些圖片、視訊等資料,可能就會被編碼成ascii中不可見部分的編碼。網路中不同的路由裝置處理方式不同,有可能就會把這部分資料弄丟了。為了保證資料傳輸的正確性,可以使用Base64編碼將這些不可見資料編碼成可見資料。 Java實現B
Java圖片Base64編碼
//##########################################################// String uploadDir = com.bstek.dorado.core.Configure.getString( &
php base64圖片儲存
function base64_image_content($base64_image_content,$path){ //匹配出圖片的格式 if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content
php base64解碼圖片 base64加密圖片還原
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
PHP開發的注意點(持續更新)
背景知識 這一篇部落格會持續更新和維護,主要是記錄一些平常工作上或者學習過程中遇到的一些注意事項,希望和大家學習與共勉。 1.關於json_encode和json_decode兩個函式的注意點: 1.json_decode():通常是將一個json字串轉成陣