В настоящее время считается неправильной практикой просто шифровать пароли самостоятельно. Часто к каждому паролю добавляется произвольная строка (называемая солью), а затем применяется шифрование. В принципе, не имеет значения, в какой последовательности вы добавляете «соль» и шифруете. Все эти комбинации равны по силе кодирования:
HASH (Pass & Salt) OR HASH (HASH (Pass)+Salt)) OR HASH (HASH (Pass) + HASH (Salt))
Соль хранятся в отдельной таблице, как обычный текст. Еще одна вещь, которую вы можете сделать, - это зашифровать одно и то же значение несколько раз подряд. Небольшая задержка для одного пользователя не будет заметна, но это увеличит усилия, необходимые для перебора пароля.
Это также хорошая практика для обозначения таблиц, поэтому имена таблиц нельзя угадать. Это затрудняет слепые атаки, когда они не могут сразу получить стол с паролями.
Что касается способа шифрования строки.
SQL Server 2000 Там нет встроенных симметричных функций. Имеются 2 асимметричные встроенные функции: BINARY_CHECKSUM
и CHECKSUM
.
VB VB дает вам уже реализованные алгоритмы, а также инструменты для выполнения вашей собственной реализации. Статья, на которую ссылается @SuperFunkyMonkey имеет ссылки на Security.Cryptography Namespace. Другим симметричным алгоритмом (который вы можете декодировать) является Rijndael.
'VB6' или' VB.NET'? В любом случае, я уверен, что у Google будет много результатов для этого. Почему шифрование должно быть обратимым? Обычно используется только односторонний хеш. –
VB6. Значения строк должны быть сначала зашифрованы. Но, когда это необходимо в будущем, нужно иметь возможность расшифровать это же зашифрованное значение до исходного значения строки. – Kings