2012-07-05 35 views
6

en mi aplicación Quería implementar algo de cifrado. Por lo tanto, necesito el código para el cifrado Vigenere. ¿Alguien sabe dónde puedo encontrar ese código fuente para Java?¿Dónde puedo encontrar el código fuente de Java para el cifrado Vigenere?

+2

AFAIK es un cifrado bastante simple, ¿por qué no solo implementarlo usted mismo? De hecho, puede verificar si la biblioteca de criptografía Java tiene la implementación; de todos modos, no recomendaré el uso del cifrado Vigenere en aplicaciones del mundo real. – Egor

+0

puede encontrar su respuesta aquí en este enlace http://stackoverflow.com/questions/10280637/vigenere-cipher-in-java-for-all-utf-8-characters –

Respuesta

2

Aquí hay un enlace a la implementación del Código de cifrado de Vigenere Sample Java Code to Encrypt and Decrypt using Vigenere Cipher, además de que no puedo recomendar el uso de Vigenere Cipher como encriptación.

Recomiendo jBCrypt.

+1

El enlace que ha publicado está ahora muerto. – GeoGriffin

+0

@GeoGriffin Gracias por señalar, he actualizado el enlace a otro ejemplo. –

+0

enlace muerto de nuevo. – Omore

11

Esta es la clase de cifrado Vigenere, puede usarlo, solo llame a encriptar y desencriptar la función: El código es de 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 le ayudará se proporciona .El código completo para el desciframiento. Puede usar esto para escribir el código de cifrado

+0

Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. - [De la crítica] (/ review/low-quality-posts/19031471) – Lucifer

Cuestiones relacionadas