我有一个使用Datawindow Select / Update的表格用户维护窗口。
我需要加密MSSQL数据库中保存的密码。
我有一个功能f_decrypt for Powerbuilder和dbo。
如何使用dw.Update()加密密码?
答案 0 :(得分:0)
可能会写一本关于可能性的小书。我的第一个问题是存储加密密码的要求,或密码是否必须通过电子邮件加密。如果存储是唯一的要求,我倾向于让DBMS做一个高级程序员团队花费数月时间努力做到的事情,而不是试图自己重新发明轮子。即使它必须通过加密的电线,我会首先看看DBMS提供的选项。
如果你必须在客户端做这件事并处理散列,腌制,防止代码的逆向工程,等,你自己,仍然有十几种方法可以做到这一点。我尝试的第一种方法是为密码用户界面创建一个带有虚拟列的DataWindow,以及表格中的列,例如:
SELECT ' ' as password_ui,
table.password_storage,
...
FROM table
....
我将password_ui放在DataWindow的用户界面上,并将password_storage保留在用户界面之外,但请确保password_storage作为可更新列包含在Update Properties中。然后,在ItemChanged上,如果更改的列是password_ui,我会
CHOOSE CASE dwo.Name
CASE "password_ui"
SetItem (row, "password_storage", f_encrypt (data))
END CHOOSE
祝你好运,
特里。