Pergunta

Preciso armazenar alguns dados confidenciais criptografando-os com uma chave de pelo menos 128 bits.Investigei no pacote javax.crypto e descobri que existem certos nomes de cifra, como pbewithmd5anddes ou pbewithsha1anddesede que fornece criptografia até 56 bits e 80 bits (http://en.wikipedia.org/wiki/DESede).

Mencionei postagens de outros caras, mas eles usam principalmente RSA e, no meu entendimento, RSA geralmente é adequado para criptografar os dados de comunicação (com par de chaves pública-privada).Minha necessidade é diferente, só quero armazenar os dados e recuperá-los descriptografando-os.Portanto, não preciso de nenhum par de chaves pública-privada.

Por favor, deixe-me saber se você tem alguma idéia sobre isso.

Foi útil?

Solução

Usar Padrão de criptografia avançado (AES).Suporta comprimentos de chave de 128, 192 ou 256 bits.

O algoritmo é simples.O site Sun Java tem um seção explicando como fazer AES criptografia em Java.

Da Wikipédia...

...O padrão de criptografia avançado (AES), também conhecido como Rijndael, é uma cifra em bloco adotada como um padrão de criptografia pelos EUAgoverno.Ele foi analisado extensivamente e agora é usado em todo o mundo, como foi o caso de seu antecessor, o padrão de criptografia de dados (DES) ...

Portanto, como regra geral, você não deve usar o DES ou suas variantes porque ele está sendo descontinuado.

A partir de agora, é melhor usar AES.Existem outras opções como Dois peixes, Baiacu etc também.Observe que o Twofish pode ser considerado uma versão avançada do Blowfish.

Outras dicas

Tive um bom sucesso no passado com http://www.bouncycastle.org/ (eles também têm uma versão C#).

Você precisa fazer download e instalar o arquivo de política JCE de força ilimitada para seu JDK.Para JDK 6, está ativado http://java.sun.com/javase/downloads/index.jsp bem no fundo.

Combinar três respostas diferentes dá o que considero a resposta correta.

Baixe bibliotecas de criptografia de Castelo inflável então você precisa baixar a "Política de Jurisdição de Força Ilimitada" em Oráculo (os arquivos estão no final da página de download).Certifique-se de ler o arquivo Leiame sobre como instalá-lo.

Depois de fazer isso e usar o código de exemplo fornecido com o pacote Bountycastle, você poderá criptografar seus dados.Você pode optar por uma implementação DES tripla, que fornecerá uma chave de 112 bits (geralmente chamada de 128 bits, mas apenas 112 deles são realmente seguros) ou, como afirmado anteriormente, você pode usar AES.Meu dinheiro estaria na AES.

Não sou um especialista em criptografia de forma alguma (então aceite esta sugestão com cautela), mas usei Baiacu antes, e acho que você pode usá-lo para o que precisar.Há também um algoritmo mais recente do mesmo cara chamado Dois peixes.

Aqui está um site com implementação Java, mas tome cuidado com a licença (ela diz gratuita para uso não comercial).Você pode encontrar esse link também em Site de Bruce Schneier (o criador de ambos os algoritmos).

Obrigado Michael, depois de experimentar muitas coisas no JCE, finalmente me decidi pelo castelo inflável.

JCE oferece suporte a AES para criptografia e PBE para criptografia baseada em senha, mas não oferece suporte à combinação de ambos.Eu queria a mesma coisa e encontrei no castelo inflável.

O exemplo está em: http://forums.sun.com/thread.jspa?messageID=4164916

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top