2012-07-05 2 views
6

in meiner App wollte ich einige Verschlüsselung implementieren. Daher brauche ich den Code für die Vigenere-Chiffre. Weiß jemand, wo ich diesen Quellcode für Java finden kann?Wo finde ich den Java-Quellcode für die Vigenere-Chiffre?

+2

AFAIK es ist eine ziemlich einfache Chiffre, warum nicht nur implementieren Sie es selbst? In der Tat können Sie überprüfen, ob die Java Cryptography-Bibliothek die Implementierung enthält. Ich werde jedoch nicht empfehlen, die Vigenere-Chiffre in realen Anwendungen zu verwenden. – Egor

+0

Sie können Ihre Antwort hier in diesem Link http://stackoverflow.com/questions/10280637/vigenere-cipher-in-java-for-all-utf-8-characters –

Antwort

2

Hier ist ein Link zu einer Vigenere Cipher Code Implementierung Sample Java Code to Encrypt and Decrypt using Vigenere Cipher, außerdem kann ich nicht empfehlen, Vigenere Cipher als Verschlüsselung zu verwenden.

Ich empfehle .

+1

Der Link, den Sie veröffentlicht haben, ist jetzt tot. – GeoGriffin

+0

@GeoGriffin Danke für den Hinweis, ich habe den Link auf ein anderes Beispiel aktualisiert. –

+0

Verknüpfung wieder tot. – Omore

11

Dies ist Vigenere Chiffre-Klasse, können Sie es verwenden, rufen Sie einfach verschlüsseln und entschlüsseln Funktion: Der Code ist von Rosetta Code.

public class VigenereCipher { 
    public static void main(String[] args) { 
     String key = "VIGENERECIPHER"; 
     String ori = "Beware the Jabberwock, my son! The jaws that bite, the claws that catch!"; 
     String enc = encrypt(ori, key); 
     System.out.println(enc); 
     System.out.println(decrypt(enc, key)); 
    } 

    static String encrypt(String text, final String key) { 
     String res = ""; 
     text = text.toUpperCase(); 
     for (int i = 0, j = 0; i < text.length(); i++) { 
      char c = text.charAt(i); 
      if (c < 'A' || c > 'Z') continue; 
      res += (char)((c + key.charAt(j) - 2 * 'A') % 26 + 'A'); 
      j = ++j % key.length(); 
     } 
     return res; 
    } 

    static String decrypt(String text, final String key) { 
     String res = ""; 
     text = text.toUpperCase(); 
     for (int i = 0, j = 0; i < text.length(); i++) { 
      char c = text.charAt(i); 
      if (c < 'A' || c > 'Z') continue; 
      res += (char)((c - key.charAt(j) + 26) % 26 + 'A'); 
      j = ++j % key.length(); 
     } 
     return res; 
    } 
} 
1

This pos t werden Sie für Entzifferung .Der gesamte Code helfen vorgesehen ist. Sie können dies zum Schreiben von Verschlüsselungscode verwenden

+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/19031471) – Lucifer