2016-09-09 3 views
-1

Also habe ich ein bisschen Text, den ich in eine Playfair-Chiffre übergeben muss, um verschlüsselt zu werden. Das Problem ist, ich möchte die Interpunktion beibehalten, die in der Zeichenfolge verwendet wird. Zum Beispiel "Timmy, was ist deine Lieblingsfarbe?" könnte die Zeichenfolge sein, die ich verschlüsseln möchte. Ich brauche eine Möglichkeit, dass jedes Mal, wenn der Text verschlüsselt wird, die Interpunktion entfernt und dann wieder in die Ausgabe eingefügt wird, so dass ich für das obige Beispiel "chds, xgdd'a ywte gdfabyqt olshf?" Ich muss auch in der Lage sein, dasselbe zu tun, wenn die Nachricht dann decodiert wird. Jede Hilfe wird empfohlen!Entfernen und wieder einfügen Interpunktion später Java

PS: Brauche keine Hilfe mit dem Schlüsselabschnitt. Nur die PT zu CT Interpunktion Erhaltung.

+0

Codieren Sie Ihre 'Zeichenfolge' (vor der Verschlüsselung) an (für ein Beispiel) base64. –

+0

"Timmy Komma was Apostroph ..." – rossum

Antwort

0

Sie könnten eine char[] mit einer Größe erstellen, die der ursprünglichen Zeichenfolge entspricht, und sie mit der Punktierung aus dieser Zeichenfolge im Index, der gefunden wird, vorseyn. Wenn Sie dann den verschlüsselten/entschlüsselten String erhalten, durchlaufen Sie einfach jedes Zeichen in dem neuen String und platzieren Sie sie in dem char[] überspringe die bereits durch Interpunktion gefüllt. Dann erstellen Sie einen String aus dem char[].

0

Es scheint mir, dass Sie nur den 'reinen Text' verschlüsseln wollen und alle nicht-alphanumerischen Zeichensätze belassen. Wenn das der Fall ist, dann können Sie Ihre eigene Datenstruktur so etwas wie erstellen:

class StringElement{ 
    String contentToEncrypt; 
    Boolean shouldEncrypt; 
    } 

Sie die Zeichenfolge in eine Liste/hash/Array umwandeln können. Während Sie dies tun, müssen Sie die Zeichenfolge in ihre Komponenten aufteilen und entscheiden, ob die Komponente verschlüsselt werden soll oder nicht, z. Timmy, Was ist deine Lieblingsfarbe ?, kann {["Timmy", true], [",", false] ...} werden, um "Timmy" zu verschlüsseln, aber "" vor Verschlüsselung zu schützen.

Verwandte Themen