Возможно, небольшая книга может быть написана о возможностях. Мой первый вопрос - это требование к магазину зашифрованным паролям, или пароль должен быть пройти по проводу зашифрован. Если хранилище является единственным требованием, я бы хотел, чтобы СУБД делала то, что команда программистов высокого уровня проводила месяцы, пытаясь получить право, вместо того, чтобы пытаться изобрести колесо самостоятельно. Даже если он должен пройти через зашифрованный провод, я сначала посмотрю на опции, предоставленные СУБД.
Если вам нужно сделать это на стороне клиента и разобраться с хешированием, засолением, предотвращением обратного проектирования вашего кода, и др., вы, вероятно, еще десяток способов сделать это. Первый способ, который я попытаюсь сделать, - создать DataWindow с фиктивным столбцом для пользовательского интерфейса пароля, а также столбец в таблице, например.
SELECT ' ' as password_ui,
table.password_storage,
...
FROM table
....
Я бы поставил password_ui на пользовательском интерфейсе DataWindow, и оставить password_storage от пользовательского интерфейса, но убедитесь, что password_storage включен в свойствах обновления в обновляемом столбце. Затем, на ItemChanged, если столбец изменился является password_ui, я бы
CHOOSE CASE dwo.Name
CASE "password_ui"
SetItem (row, "password_storage", f_encrypt (data))
END CHOOSE
Успехов,
Терри.
Мне просто нужно «просто зашифровать» пароль, поскольку это требование. как можно проще. Я уже пробовал этот SetItem после замены элемента. но я не знаю, работает ли он правильно, используя PB8. Я попытался включить функцию в select и до сих пор не шифрует ее. – Sid
Простой, как можно? Похоже, что мой первый параграф рекомендаций применяется, а затем: используйте шифрование СУБД. (http://msdn.microsoft.com/en-us/library/ms179331.aspx) – Terry
thx. работает ли это с MSSQL 2000? – Sid