Un grande cliente finanziario con cui facciamo affari ha un processo automatizzato standardizzato per nascondere i dati. Non lo facciamo, quindi ho alcuni script in cui lo faccio a mano. Il punto è di lasciare dati ragionevolmente realistici (lunghezze di nomi, codici postali) mentre si rendono irrimediabilmente codificati i dati personali identificabili. Il loro sistema è molto più complicato di questo, ma fondamentalmente quando i dati di produzione vengono copiati negli ambienti di sviluppo e di controllo qualità, verranno automaticamente codificati. In questo modo non c'è il potenziale per "dimenticare" di fare un po 'di rimescolamento.
Password:
Impostali tutti in qualcosa che gli account di prova usano: come Password1
o 1234567
.
Numeri ID fiscali, numeri di previdenza sociale, numeri di previdenza sociale:
Prendi le prime 3 cifre e genera numeri casuali per il resto. Negli Stati Uniti, le prime 3 cifre vengono generalmente assegnate in base al luogo in cui si è vissuto quando è stato rilasciato l'SSN, quindi non tutte le combinazioni delle prime 3 cifre sono valide. Per EINs, prendi le prime 2 cifre, poiché non tutte le combinazioni delle prime 2 cifre sono valide. Regola quali cifre vengono lasciate da sole se il tuo Paese utilizza regole diverse.
Nomi:
Hash e base64 il nome e il cognome separatamente. Prendi la prima lettera del nome unhash e aggiungi l'hash in seguito e troncare il risultato alla lunghezza del nome originale
Esempio:
Name="John Doe" (sto usando SHA384)
Quindi John Doe
diventa trasformato in Jnbn Dnh
. Aiuta a mantenere i nomi la stessa lunghezza che può aiutare a segnalare problemi di usabilità.
Se si dispone di regole come "i nomi non possono contenere cifre", è necessario rimuovere i valori di base 64 che non sono validi, anche in lettere minuscole (eseguite nel seguente codice di esempio).
Indirizzi:
I nomi delle strade e i nomi delle città vengono sottoposti a hash come i nomi sopra riportati. I numeri rimangono gli stessi. Stato e zip rimane lo stesso.
Quindi 1313 Mockingbird Lane
diventa 1313 Mvtqiwtuqrd Lzzx
Numeri di telefono:
Lascia lo stesso codice area, genera cifre casuali per le cifre rimanenti.
Numeri di carta di credito:
Non dovresti immagazzinarli affatto.
Ecco alcuni esempi e amp; codice C # grezzo per l'hashing e il troncamento (semplice visualizzazione del concetto)
using System.Security.Cryptography;
using System.Text.RegularExpressions;
public string ScrambleInput(string sInput)
{
string sReturn = sInput.Substring(0,1);
string sTemp = string.Empty;
System.Security.Cryptography.SHA384Managed Hasher = new SHA384Managed();
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
byte[] buff = new byte[sInput.Length];
buff = enc.GetBytes(sInput);
Hasher.ComputeHash(buff);
sTemp = Convert.ToBase64String(Hasher.Hash, 0, Hasher.Hash.Length, System.Base64FormattingOptions.None);
sTemp = sTemp.ToLower().Replace("+", "").Replace("/", "");
sReturn += Regex.Replace(sTemp, @"\d", "");
sReturn = sReturn.Substring(0, sInput.Length );
return sReturn;
}