Al giorno d'oggi è considerata una cattiva pratica solo per crittografare le password per conto proprio. Spesso una stringa arbitraria (chiamata "salt") viene aggiunta a ogni password e quindi viene applicata la crittografia. In linea di principio non importa in quale sequenza stai aggiungendo "sale" e criptato. Tutte queste combinazioni sono uguali come forza codifica:
HASH (Pass & Salt) OR HASH (HASH (Pass)+Salt)) OR HASH (HASH (Pass) + HASH (Salt))
sale è tenuto in tabella separata come plain-text. Un'altra cosa che puoi fare è crittografare lo stesso valore più volte di seguito. Un piccolo ritardo per un utente non sarà evidente, ma aumenterà lo sforzo necessario per forzare la password.
È anche una buona pratica denominare tabelle in modo che i nomi delle tabelle non possano essere indovinati. Rende gli attacchi ciechi più difficili quando non riescono a ottenere il tavolo con le password subito.
Per quanto riguarda un modo per crittografare la stringa.
SQL Server 2000 Nessuna funzione simmetrica incorporata. Ci sono 2 funzioni integrate asimmetriche: BINARY_CHECKSUM
e CHECKSUM
.
VB VB offre algoritmi già implementati e strumenti per eseguire la propria implementazione. L'articolo cui si riferisce @SuperFunkyMonkey ha collegamenti a Security.Cryptography Namespace. Un altro algoritmo simmetrico (quello che puoi decodificare) è Rijndael.
'VB6' o' VB.NET'? Ad ogni modo sono abbastanza sicuro che Google avrà un sacco di risultati per questo. Perché la crittografia deve essere reversibile comunque? È normale usare solo un hash unidirezionale. –
VB6. I valori stringa devono essere prima crittografati. Ma, quando richiesto in futuro, si dovrebbe poter decifrare lo stesso valore crittografato con il valore di stringa originale. – Kings