2013-05-21 8 views
17

JavaのユーザーIDフィールドを暗号化するためにBase64暗号化を使用しています。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エンコードされた文字列にカンマ、コロン、または二重引用符は表示されません。あなたは、電子が表示されます彼らはエンディングのコンテンツを埋めるために使用されているので、

11

あなたはBase64でのための適切なエンコーダを持っている場合は、あなたが以外の特殊文字は表示されません。=

[AZ] [AZ] [0-9] [+ /]とパディング文字を」ゼロ充填バイトの数を示すために末尾にある

しかし、この仕様には他の文字を含めることができます。多くの場合、Base64でエンコードされたデータには、76文字ごとに改行が含まれます。上記以外の文字は、デコード中に削除する必要があります。パディング文字は、n * 4の出力文字に適用される0バイトの数を示します。

関連する問題