2012-07-05 11 views
6

nella mia app volevo implementare alcune codifiche. Quindi ho bisogno del codice per il codice Vigenere. Qualcuno sa dove posso trovare quel codice sorgente per Java?Dove posso trovare il codice sorgente Java per il codice Vigenere?

+2

AFAIK è un codice piuttosto semplice, perché non applicarlo da solo? In effetti è possibile verificare se la libreria di crittografia Java ha l'implementazione, comunque, non raccomanderò l'uso del codice Vigenere nelle applicazioni del mondo reale. – Egor

+0

puoi trovare la tua risposta qui in questo link http://stackoverflow.com/questions/10280637/vigenere-cipher-in-java-for-all-utf-8-characters –

risposta

2

Questo è un collegamento a un'implementazione del codice di Vigena Cipher Sample Java Code to Encrypt and Decrypt using Vigenere Cipher, oltre a questo non posso raccomandare di utilizzare Vigenere Cipher come crittografia.

Raccomando jBCrypt.

+1

Il link che hai postato è morto. – GeoGriffin

+0

@GeoGriffin Grazie per aver segnalato, ho aggiornato il collegamento con un altro esempio. –

+0

link dead again. – Omore

11

Questa è la Classe di cifratura Vigenere, è possibile utilizzarla, è sufficiente chiamare la funzione di crittografia e decrittografia: Il codice è da 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 vi aiuterà viene fornito .La intero codice per decifrare. Puoi usarlo per scrivere il codice di codifica

+0

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - [Dalla recensione] (/ recensione/post di bassa qualità/19031471) – Lucifer

Problemi correlati