Devo memorizzare gli hash crittografici come un blob o come una stringa?

2

Sono nuovo di MongoDB e mi sto chiedendo come decidere di archiviare alcuni hash crittografici. Devo memorizzare i dati binari, come blob , o dovrei memorizzare la rappresentazione della stringa come string ?

Il mio istinto è usare semplicemente una stringa e farla finita, ma non sono sicuro che questo sia l'approccio migliore. Ad esempio, un BLOB occuperebbe meno spazio.

  • C'è un impatto negativo, in termini di codifica, nell'uso di un blob (vale a dire più difficile da aggirare o oggetti di riferimento?)
  • Ci sono "trucchi" se il _id di un documento è un blob ?
  • C'è qualche vantaggio nell'usare un blob a tutti?
posta Claudiu 22.02.2016 - 21:23
fonte

1 risposta

2

L'abbiamo fatto in entrambi i modi e non fa davvero molta differenza. Ma stiamo andando verso blob su progetti più recenti, che la riga di comando di PostgreSQL (il nostro database di scelta) mostra comunque in formato esadecimale per impostazione predefinita.

Anche le API crittografiche tendono a passare attorno agli hash come byte [], quindi i blob sono una buona soluzione.

Infine, usando il byte [] si può fare un tentativo di azzerare il contenuto dell'array quando viene fatto con l'array.

Un po 'fuori tema: noto il "tentativo" di azzerare l'uscita perché in Java gli oggetti possono essere spostati nella memoria senza il tuo controllo. Possiamo azzerare un array e una copia precedente del suo contenuto può rimanere nella memoria fisica ed essere disponibile al di fuori del processo. Facciamo solo ciò che possiamo e non abbiamo guardato in alcun modo JNI / sun.misc.Unsafe per bloccare gli oggetti.

    
risposta data 23.02.2016 - 01:59
fonte

Leggi altre domande sui tag