Penso che archiviare qualsiasi cosa in SQL va bene, basta crittografarlo prima. Se è necessario identificare i dati in qualche modo (ad esempio con una chiave univoca per la voce DB) creare una stringa generata in modo casuale o un hash sicuro e archiviarla insieme ai dati crittografati.
Probabilmente è meglio attenersi a qualcosa che è provato e testato. Dal momento che si tratta di un DB (presumibilmente per un sistema di fatturazione) sarebbe bene avere un recupero veloce. Quindi, evita la crittografia asimmetrica, che devi utilizzare solo per crittografare le chiavi simmetriche se devi condividerle con qualcuno.
Alcune resistenze particolari (ad esempio 256 bit) di AES dovrebbero andare bene. Sarei felice di sapere i miei dettagli personali che ci siamo assicurati in questo modo.
In termini di memorizzazione delle password degli utenti, è prassi comune generare un salt (una stringa casuale) e quindi eseguire l'hash della password utente combinata con questo sale utilizzando un algoritmo hash sicuro (RIPEMD, SHA1, MD5).
Questo impedisce un cracker dizionario pre-calcolate da recuperare le passwods poiché deve gestire tutti i sali casuali pure.
Non crittografare le password, solo cancellarle. Non è necessario essere in grado di recuperare la password in chiaro, ma rende vulnerabile il sistema solo tramite questa chiave master. Non crittografare i dati degli utenti con chiavi che gli utenti possono scegliere, renderà i dati irrecuperabili in caso di perdita delle chiavi. Fornire metodi comuni per consentire agli utenti di recuperare l'accesso al proprio account nel caso in cui perdano la password.
Se avete veramente bisogno di nascondere nomi utente, forse si dovrebbe chiedere se stessi circa l'architettura di dati che si sta utilizzando. In generale, i dati personali e, in particolare, i dati di fatturazione non dovrebbero essere archiviati in bella vista, dovrebbero essere accessibili solo da parti fidate. Queste parti attendibili avranno bisogno di visualizzare il contenuto di nomi utente e informazioni, quindi la crittografia probabilmente non è necessaria.
Se si stanno trasmettendo informazioni utente su Internet aperto, crittografarlo.
Se siete preoccupati per la sicurezza di informazioni utente sul DB server, forse prendere in considerazione di lavoro con una nuvola o dati hosting provider che possono fornire con una certa sicurezza fisica aggiuntiva per i server.
La crittografia è solo una parte di una solida politica di sicurezza. Concentrati soprattutto sull'elemento umano di creare un ambiente sicuro in cui condurre il tuo business. Distribuire l'accesso a risorse sensibili sulla base della necessità di conoscere. Assicurati di organizzare i backup o alcuni metodi di recupero dei dati nel caso in cui tutte le chiavi andassero perse.
Non memorizzare mai le informazioni della carta di credito. –
@ShaktiSingh quindi come fanno le aziende come Amazon e Like a memorizzarle? –
leggi: http://stackoverflow.com/questions/3002189/best-practices-to-store-creditcard-information-into-database –