Pergunta

Alguém pode sugerir um algoritmo de criptografia fast 2 maneira por longos ints?

Os meus candidatos são:

  • AES:. Advanced Encryption Standard especificado pelo NIST FIPS-197
  • BLOWFISH:. O algoritmo Blowfish definido por Bruce Schneier
  • DES:. O algoritmo Data Encryption Standard definido pelo NIST FIPS-46-3
  • DESEDE: o algoritmo "Triple DES" definido pelo NIST FIPS-46-3.

Editar -

A velocidade é mais um fator de segurança. O pedido real foi ids "Obscurecer" ser preterido serviços web internos para no caso de um id está sempre exposta não podia adivinhar outros ids adicionando 1. (um argumento para chaves UUID mais anseia auto-incremento ??)

Foi útil?

Solução

Use AES. Velocidade foi uma consideração importante em sua seleção para substituir DESEDE. Em hardware PC moderno, ele tende a ser mais rápido do que Blowfish, e como um padrão, é mais provável que tenha suporte de hardware especializado.

A propósito, todas as cifras criptografar inteiros-cada longa corrente de bytes é um inteiro, representado na base-256.

Outras dicas

Eu não preciso de uma chave pública. A exigência é para criptografar ids em um banco de dados à medida que passam entre as máquinas. Ambas as máquinas terão o sal

Então, XOR?

Qual é a sua principal critério para a seleção? Velocidade ou segurança? Esse é o trade-off fundamental no negócio criptografia. Aqui está um conjunto de resultados de benchmark para Crypto ++ . Eles não vão dizer-lhe tudo, mas você vai ser capaz de dizer quais algoritmos são geralmente mais rápido do que outros. Aqui está um whitepaper discutir os pontos fortes relativos de alguns algoritmos populares . Determinando a força é uma coisa muito difícil de fazer, no caso geral, embora alguns algoritmos têm sido dada atenção suficiente para que os seus pontos fortes e fracos são bastante conhecidos (DES, RSA, etc). Uma regra convencional de ouro é que chaves mais longas implicam maiores pontos fortes, mas você tem que ter muito cuidado com isso. Eu suspeito que no seu caso, AES ou Blowfish vai ficar bem. AES será, provavelmente, um pouco mais amplamente suportado, mas realmente - ou provavelmente faria. Fique longe de DES, a menos que a velocidade é um fator crítico.

Se a segurança é sua principal preocupação, eu iria com AES.

No entanto, o texto cifrado pode ser muito grande para o seu banco de dados. Se você adicionar IV, estofamento, é 64 caracteres em hexadecimal, pelo menos. Você pode usar o algoritmo que eu postei aqui se deparou com esse limite,

criptografia simétrica simples de tempo para string (e volta) em java

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