Domanda

Qualcuno può suggerire un algoritmo di crittografia 2 modo veloce per lunghi int?

I miei candidati sono:

  • AES:. L'Advanced Encryption Standard specificato da NIST FIPS-197
  • BLOWFISH:. L'algoritmo Blowfish definito da Bruce Schneier
  • DES: l'algoritmo Data Encryption Standard definito da NIST FIPS-46-3
  • .
  • DESEDE: l'algoritmo "Triple DES" definito dal NIST FIPS-46-3.

Modifica -

La velocità è più di un fattore di sicurezza. La richiesta attuale è stato quello di "offuscare" id essere passati sopra servizi Web interni così nel caso in cui un id viene mai esposto non si poteva immaginare altri ID con l'aggiunta di 1 (un argomento per le chiavi UUID oltre anela incremento automatico ??)

È stato utile?

Soluzione

Usa AES. La velocità è stata una considerazione importante nella scelta di sostituire DESEDE. Su moderno hardware per PC, tende ad essere più veloce di Blowfish, e come standard, è più probabilità di avere il supporto hardware specializzato.

A proposito, tutte le cifre crittografare interi long-ogni flusso di byte è un intero, rappresentato in base-256.

Altri suggerimenti

  

Non ho bisogno di una chiave pubblica. Il requisito è per cifrare ids in un database che passano tra le macchine. Entrambe le macchine avranno il sale

Poi, XOR?

Qual è il tuo criterio principale per la selezione? Velocità o sicurezza? Questo è il trade-off fondamentale nel settore della crittografia. Ecco una serie di risultati dei benchmark per Crypto ++ . Non ti dicono tutto, ma sarà in grado di dire che gli algoritmi sono generalmente più veloci di altri. Ecco un discutere i rapporti di forza tra alcuni algoritmi popolari . Determinare la forza è una cosa molto difficile da fare nel caso generale, anche se alcuni algoritmi sono stati prestata sufficiente attenzione che i loro punti di forza e di debolezza sono abbastanza ben noti (DES, RSA, ecc). Una regola convenzionale generale è che le chiavi più lunghe implicano maggiori punti di forza, ma devi essere molto attenti con quello. Ho il sospetto che nel tuo caso, sia AES o Blowfish andrà bene. AES sarà probabilmente un po 'più ampiamente supportato, ma in realtà - o sarebbe probabilmente fare. Stare lontano da DES a meno che la velocità è un fattore critico.

Se la sicurezza è la vostra preoccupazione principale, vorrei andare con AES.

Tuttavia, il testo cifrato può essere troppo grande per il database. Se si aggiunge IV, imbottitura, è 64 caratteri in esadecimale almeno. È possibile utilizzare l'algoritmo che ho postato qui se è stato eseguito in tale limite,

semplice crittografia simmetrica di tempo per String (e ritorno) in java

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top