2013-05-21 33 views
17

Ich benutze Base64-Verschlüsselung zum Verschlüsseln von Benutzer-ID-Feld in Java.Base64 verschlüsselte Erlaubte Zeichen

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

Ich möchte wissen, ob die Zeichenfolge abc oben wird das Zeichen "enthalten,: oder nicht

Wenn die Base64 verschlüsselten String in abc zurückgeführt wird, wird es immer unten Zeichen enthalten

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

Kann jemand etwas Licht?

+8

Base64 ist *** NOT *** Verschlüsselung. Es ist eine Methode zum Codieren von Binärdaten, so dass es nur mit druckbaren Zeichen dargestellt werden kann. Es ist trivial reversibel. Wenn Sie erwarten, dass die Daten sicher sind, werden Sie enttäuscht sein. –

+1

Ich würde nicht sagen, dass Sie kein Komma in einem Base64-codierten (im Allgemeinen) vielleicht für Ihren Fall finden, wird diese Bibliothek keine andere Variante verwenden, aber Sie können Variation von base64 finden, die Komma darin enthalten nach https://en.wikipedia.org/wiki/Base64#Variants_summary_table "Modifizierte Base64-Codierung für IMAP-Postfachnamen (RFC 3501)" – arhak

Antwort

16

Sie erhalten keine Kommas, Doppelpunkte oder doppelte Anführungszeichen in einer Base64 codierte Zeichenfolge sehen. Sie werden sehen, e quals Zeichen, da sie verwendet werden, um den End-Inhalt aufzufüllen.

11

Wenn du einen Encoder für Base64 haben, werden Sie keine Sonderzeichen sehen, außer:

[AZ] [az] [0-9] [+ /] und die Polsterung char ‚= 'am Ende, um die Anzahl der Null füllen Bytes

Nichtsdestotrotz erlaubt die Spezifikation, ein beliebiges anderes Zeichen enthalten. Häufig enthalten die Base64-codierten Daten alle 76 Zeichen einen Zeilenvorschub '\ n'. Alle Zeichen außer den oben genannten müssen während der Decodierung entfernt werden. Die Auffüllzeichen geben die Anzahl der Nullbytes an, die angehängt werden, um sie auf n * 4 Ausgangszeichen anzuwenden.