當前位置:首頁 » 編程語言 » java的base64

java的base64

發布時間: 2025-07-13 02:39:51

java:為什麼傳輸圖片是常用base64字元串轉碼,而不是直接傳輸byte[]呢求解

先說說base64吧:對於圖片來說,一個位元組佔八位,如果都換成byte[]的話,會很長,不便於傳輸,那麼就把沒6個位元組來對應一個新的字元(如010011是19,對應base64編碼的T),,所以這個目的主要是精簡數據,便於傳輸;
另外常用的用途是:做不嚴格的加密用,比如常見的磁力鏈接,你懂的;因為它相對於嚴格加密省時省力,速度快,況且可恢復(如果用MD5就不行)

⑵ Java 保存圖片到資料庫時,為什麼要對圖片進行base64編碼

首先這是一種SB做法,圖片保存到資料庫這個很浪費資料庫資源, 通常情況下圖片等文件都是用ftp伺服器來存儲文件的. 為什麼要用base64進行編碼是因為, base64會把文件這個文件轉換成字元串, base64編碼後得到的是一組字元串, 為什麼要用blob類型, 因為這個類型可以存儲4GB數據, 資料庫中普通的 varchar varchar2 text等類型都有長度的限制

⑶ 在Java中如何進行BASE64編碼和解碼

importsun.misc.BASE64Encoder;
importsun.misc.BASE64Decoder;

//將s進行BASE64編碼
publicstaticStringgetBASE64(Strings){
if(s==null)returnnull;
return(newsun.misc.BASE64Encoder()).encode(s.getBytes());
}

//將BASE64編碼的字元串s進行解碼
(Strings){
if(s==null)returnnull;
BASE64Decoderdecoder=newBASE64Decoder();
try{
byte[]b=decoder.decodeBuffer(s);
returnnewString(b);
}catch(Exceptione){
returnnull;
}
}

⑷ 如何使用JAVA實現對字元串的DES加密和解密

/**
*ECB模式的des加密,以base64的編碼輸出
*@parammessage
*@paramkey
*@return
*@throwsException
*/
publicstaticStringdesEncrypt(Stringmessage,Stringkey)throwsException{
//DES/ECBCBCCFBOFB/PKCS5PaddingNoPadding加密/模式/填充
Ciphercipher=Cipher.getInstance("DES");//默認就是DES/ECB/PKCS5Padding
DESKeySpecdesKeySpec=newDESKeySpec(key.getBytes());
SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("DES");
SecretKeysecretKey=keyFactory.generateSecret(desKeySpec);
cipher.init(1,secretKey);
returnnewBASE64Encoder().encode(cipher.doFinal(message.getBytes("UTF-8")));
}
/**
*ECB模式的des解密
*@parammessage
*@paramkey
*@return
*@throwsException
*/
publicstaticStringdesDecrypt(Stringmessage,Stringkey)throwsException{
Ciphercipher=Cipher.getInstance("DES");
DESKeySpecdesKeySpec=newDESKeySpec(key.getBytes());
SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("DES");
SecretKeysecretKey=keyFactory.generateSecret(desKeySpec);
cipher.init(2,secretKey);
returnnewString(cipher.doFinal(Base64.decode(message)),"UTF-8");
}

你自己寫main方法測試一下,應該是沒問題的

⑸ 關於java中BASE64解碼演算法

讓我們再來看一個實際的例子,加深印象!

轉換前 10101101 10111010 01110110
轉換後 00101011 00011011 00101001 00110110
十進制 43 27 41 54
對應碼表中的值 r b p 2
將第一個字元右移2位得00101011, 得第一個目標字元00101011
將第一個字元左移4位得11010000,第二個字元右移4位的00001011相加得第二個目標字元11011011
將第二個字元左移2位得11101000,第三個字元右移6位的00000001相加的第三個目標字元11101001
第四個目標字元就是01110110
然後讓各個目標字元與0x3F進行and位操作,讓最高的兩位為零。

⑹ java:關於base64編碼求解

首先base64是對位元組碼進行再次編碼,所以要先把你這個字元轉成二進行碼(不過對於英文字母來說,轉成的二進制碼都是一樣的,就沒關系了)。'a'對應的二進制碼為01000001(65),而base64是每6位編成一個字元(base64字元),則把此二進制碼分成2段,第一段是010000,第二段是01(0000不足位補0),這兩個不是一樣的嗎,值為16,對應第17個大寫字母(0對應A),那自然是兩個Q了,而base64編碼至少編出4個字元(因為給3個字元來編碼,一個6位,3個24位,6位一編碼,正好編出4個,反過來自然是4個解碼成3個)。另外這個編碼過程本來就是它的原理,原理圖如下,只要明白了原理才知道倒底怎麼編。

熱點內容
php上傳資料庫中 發布:2025-07-13 06:32:44 瀏覽:88
雲伺服器網卡不能使用 發布:2025-07-13 06:12:45 瀏覽:741
php正則圖片替換圖片 發布:2025-07-13 06:12:43 瀏覽:606
更換伺服器對ip影響 發布:2025-07-13 06:07:53 瀏覽:528
sql聲明變數並賦值 發布:2025-07-13 06:07:51 瀏覽:909
java判斷類型 發布:2025-07-13 06:02:10 瀏覽:18
電腦伺服器主進程停止工作怎麼辦 發布:2025-07-13 05:54:56 瀏覽:771
foxmail設置伺服器地址 發布:2025-07-13 05:52:35 瀏覽:464
電視怎麼查看自己的配置 發布:2025-07-13 05:38:03 瀏覽:783
兩台雲伺服器集群搭建 發布:2025-07-13 05:36:17 瀏覽:209