Obecnie uważa się za złą praktykę po prostu do szyfrowania haseł na własną rękę. Często dowolny ciąg (nazywany "solą") jest dodawany do każdego hasła, a następnie stosowane jest szyfrowanie. Zasadniczo nie ma znaczenia, w której sekwencji dodajesz "sól" i zaszyfrujesz. Wszystkie te połączenia są równe siły kodowania:
HASH (Pass & Salt) OR HASH (HASH (Pass)+Salt)) OR HASH (HASH (Pass) + HASH (Salt))
Sól przechowywane w oddzielnej tabeli postaci zwykłego tekstu. Inną rzeczą, którą można zrobić, jest zaszyfrowanie tej samej wartości kilka razy z rzędu. Małe opóźnienie dla jednego użytkownika nie będzie zauważalne, ale zwiększy wysiłek potrzebny do brutalnego wymuszenia hasła.
Jest to również dobra praktyka, aby tabel nazwa więc nazwy tabel nie można odgadnąć. Sprawia, że ślepe ataki są trudniejsze, gdy nie mogą od razu uzyskać tabeli z hasłami.
Jeśli chodzi o sposób szyfrowania ciągu znaków.
SQL Server 2000 Brak wbudowanych funkcji symetrycznych. Istnieją 2 asymetryczne wbudowane funkcje: BINARY_CHECKSUM
i CHECKSUM
.
VB VB daje już zaimplementowane algorytmy, a także narzędzia do własnej implementacji. Artykuł wspomniany przez @SuperFunkyMonkey zawiera łącza do Security.Cryptography Namespace. Innym algorytmem symetrycznym (takim, który można dekodować) jest Rijndael.
'VB6' lub' VB.NET'? Tak czy inaczej jestem przekonany, że Google będzie miał wiele wyników. Dlaczego tak czy inaczej szyfrowanie musi być odwracalne? Zazwyczaj wystarczy użyć mieszania jednokierunkowego. –
VB6. Wartości ciągów powinny być najpierw zaszyfrowane. Jednak, gdy będzie to wymagane w przyszłości, należy odszyfrować tę samą zaszyfrowaną wartość do oryginalnej wartości ciągu. – Kings