2013-05-21 84 views
17

我正在使用Base64加密來加密Java中的用戶ID字段。Base64加密允許字符

String abc = new String(Base64.encodeBase64("Actualuseridfield")); 

我想知道字符串是否ABC上面會包含字符「:或不

當Base64編碼加密的字符串在ABC返回,將以往任何時候都包含以下字符

" <double quote> 
, <comma> 
: <colon> 

任何一個可以提供一些線索?

+8

Base64是***不***加密。它是對二進制數據進行編碼的一種方法,因此它只能使用可打印字符來表示。這是微不足道的。如果您希望數據安全,您會感到失望。 –

+1

我不會說你在base64編碼(一般) 中找不到任何逗號,或許對於你的情況,該庫不會使用任何其他變體,但是你可以找到包含逗號的base64變體根據https://en.wikipedia.org/wiki/Base64#Variants_summary_table 「修改後的IMAP郵箱名稱的Base64編碼(RFC 3501)」 – arhak

回答

16

你不會看到任何逗號,冒號,或雙在Base64編碼字符串引號。你會看到è quals標誌,因爲它們用於填充結尾內容。

11

如果你有一個的Base64編碼正確,你將看不到除特殊字符:

[AZ] [AZ] [0-9] [+ /]和填充字符「= '結尾以指示零填充字節的數量

儘管如此,該規範允許包含任何其他字符。通常Base64編碼數據每76個字符包含一個換行符'\ n'。除了上面提到的字符以外的任何字符都必須在解碼過程中刪除。填充字符指示應用於n * 4個輸出字符的零字節數。