herramientas de cifrado AES de Java

AESCodec.java

El paquete util; Importación java.security.Key;

Importación javax.crypto.Cipher; Importación javax.crypto.KeyGenerator;
Importación javax.crypto.SecretKey;
Importación javax.crypto.spec.SecretKeySpec;

Importación org.apache.commons.codec.binary .Base64;

pública clase AESCodec {

   
// algoritmo de clave
    privada estática final cadena KEY_ALGORITHM = "AES" ;

   
// cifrado y descifrado el algoritmo / modo de trabajo / modo de relleno, compatibilidad con el modo de llenado PKCS5Padding Java6.0, modo de relleno de soporte PKCS7Padding BouncyCastle
    privada estática final CIPHER_ALGORITHM = cadena de caracteres "AES / ECB / PKCS5Padding" ;

   
//Por defecto clave
    privada estática final cadena de clave = "FFK / B5sFXeITk6cXV5rTNA ==" ;

   
/ **
    * generar una clave
   
* /
    pública estática Cadena InitKey () lanza la excepción {

       
// generador de claves instantiate
        la KeyGenerator kg = KeyGenerator.getInstance (KEY_ALGORITHM );

       
// inicializar generadores de claves: AES longitud de clave requiere 128 192 256 bit
        kg.init (128 );

       
// generar la clave de
        un secretKey secretKey = kg.generateKey ();

       
// Obtener codificado en binario clave forma
        de retorno el Base64. encodeBase64String (secretKey.getEncoded ());
    }

   
/ **
    * clave de conversión
   
* /
    pública estática clave TOKEY ( byte [] Tecla) lanza la excepción {
       
regresar nuevos nuevos SecretKeySpec (Key, KEY_ALGORITHM);
    }

   
/ **
    * datos cifrados
    *
    *
@param de datos los datos se codifiquen
    *
@param clave clave
    *
@return datos cifrados
    *
* /
    pública estática String cifrar (datos String, String key) lanza la excepción {

       
// restaurar la clave
        clave K = TOKEY (Base64.decodeBase64 (clave));

       
// modo de uso relleno PKCS7Padding, por lo que se han escrito (es decir, llamada BouncyCastle implementación del componente)

       
//objeto Cipher se crea una instancia, se utiliza para hacer el cifrado real de
        Cipher cifrado = Cipher.getInstance (CIPHER_ALGORITHM);

       
// objeto Cipher se inicializa, el modo de cifrado es conjunto
        cipher.init (Cipher.ENCRYPT_MODE, K);

       
// realizar operaciones criptográficas. Resultados generalmente codificadas para la transmisión de la codificación Base64
        retorno Base64.encodeBase64String (Cipher.doFinal (data.getBytes ()));
    }

   
/ **
    * datos descifrados
    *
    *
@param de datos para ser descifrado de datos
    *
@param Key clave
    *
@return descifrado de datos
    *
* /
    pública estática String descifrar (datos String, String clave) lanza la excepción {
        clave K
=TOKEY (Base64.decodeBase64 (Key));
        Cipher cifrado
= Cipher.getInstance (CIPHER_ALGORITHM);

       
// Cipher objeto se inicializa, se proporciona a modo de descifrado
        cipher.init (Cipher.DECRYPT_MODE, K);

       
// realizar operaciones de descifrado
        vuelva nuevo nuevo String ( Cipher.doFinal (Base64.decodeBase64 (datos)));
    }

   
/ **
    * datos cifrados
    *
    *
@ param datos de los datos se codifiquen
    *
@param tecla
    *
@return datos cifrados
    *
* /
    pública estática String cifrar (String datos) lanza la excepción {
       
volver al cifrar (datos, CLAVE);
    }

   
/ **
    * datos descifrados
    *
    *
@ param datos a ser descifrado de datos
    *
@param clave Clave
    *
@return descifrado de datos
    *
* /
    pública estática String descifrar (datos String) lanza la excepción {
       
volver al descifrar (datos, CLAVE);
    }

   
pública estática void main (String [] args) lanza la excepción {
       
// System.out.println ( "clave:" + InitKey ());
        cadena de datos = "123456" ;

        String cifrar
= el cifrar (datos);
        System.out.println (cifrar);
        System.out.println (decrypt (cifrar));

    }
}

Supongo que te gusta

Origin www.linuxidc.com/Linux/2020-03/162771.htm
Recomendado
Clasificación