Associare in modo affidabile metadati locali a un file remoto?
-
05-07-2019 - |
Domanda
WinForms / C #
La mia applicazione consente all'utente di specificare 1) ulteriori informazioni per 2) un determinato file, entrambi caricati sul server. Esistono due caricamenti isolati: prima il file e (forse molto) in seguito i metadati.
Si prega di presumere che il file sia sempre invariato e disponibile (rispetto al codice).
Quando i metadati vengono caricati, devo assicurarmi che sia associato al file specificato senza caricare nuovamente quel file (sono file di grandi dimensioni).
Il mio piano è usare un hash MD5 con i seguenti tre attributi del file:
- contenuto
- size
- data di creazione
L'hash accompagnerà sia il file che i metadati nei rispettivi caricamenti (ed eventuale persistenza).
Quale soluzione più intelligente sto trascurando?
Soluzione
Puoi prendere in considerazione l'uso di SHA-1 o SHA-256 ancora migliore anziché MD5, dal momento che gli hash MD5 potrebbero non essere abbastanza unici: è possibile generare un file con dimensioni e hash MD5 corrispondenti a quelli di altri file. Vedi, ad esempio, vulnerabilità MD5 .
Aggiornamento: se l'unicità del file non è strettamente importante, potresti trovare molto più conveniente generare un ID con incremento automatico durante il caricamento.