Início > Java, Programação, Segurança > Encriptação / Decriptação simples em Java

Encriptação / Decriptação simples em Java

Abaixo um exemplo bem simples de encriptação / decriptação simétrica em Java usando AES / DEAES:

import javax.crypto.*;
import javax.crypto.spec.*;

public class Encripta {
    public static void main(String[] args) {
        try {
            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
            byte[] mensagem = "minha mensagem original".getBytes();

            // Usando chave de 128-bits (16 bytes)
            byte[] chave = "chave de 16bytes".getBytes();
            System.out.println("Tamanho da chave: " + chave.length);

            // Encriptando...
            cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(chave, "AES"));
            byte[] encrypted = cipher.doFinal(mensagem);

            // Decriptando...
            cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(chave, "AES"));
            byte[] decrypted = cipher.doFinal(encrypted);

            System.out.println(new String(decrypted));
        } catch (Exception e) {
           e.printStackTrace();
        }
    }
}

Veja também: http://stackoverflow.com/questions/992019/java-256bit-aes-encryption

 

  1. Jefferson Torres
    04/12/2013 às 04:30

    Muito obrigado!
    Você me ajudo muito, só precisei converter o valor criptografado para Base64 para poder guardar em uma String e depois arquivar a senha de conexão com o banco de dados.

    • regispires
      04/12/2013 às 06:57

      Jefferson, você pode acrescentar aqui sua contribuição com a conversão para Base64?

  2. 16/11/2015 às 09:30

    Cade Jefferson Torres … rs

  3. Carlos Eduardo
    12/12/2015 às 20:15

    // encripta e desencripta com base64

    public String codifica(String mensagem, String chave) throws Exception {

    byte[] bytemensagem = mensagem.getBytes();
    byte[] bytechave = chave.getBytes();

    Key secretKey = new SecretKeySpec(bytechave,”AES”);

    Cipher c = Cipher.getInstance(“AES”);
    c.init(Cipher.ENCRYPT_MODE, secretKey);
    byte[] cipher = c.doFinal(bytemensagem);

    String codigo = new BASE64Encoder().encode(cipher);
    return codigo;

    }

    public String decodificar(String decmensagem, String chave)throws Exception{

    byte[] bytechave = chave.getBytes();

    Key secretKey = new SecretKeySpec(bytechave,”AES”);

    Cipher c = Cipher.getInstance(“AES”);
    c.init(Cipher.DECRYPT_MODE, secretKey);

    byte[] byteDecmensagem = new BASE64Decoder().decodeBuffer(decmensagem);
    byte[] byteDecodifica = c.doFinal(byteDecmensagem);

    String mensagem = new String(byteDecodifica);
    return mensagem;

    }

  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: