0

我有一个使用数据窗口选择/更新的表格用户维护窗口。

我需要加密保存在 MSSQL 数据库中的密码。

我有一个用于 Powerbuilder 和 dbo 的函数 f_decrypt。

如何使用 dw.Update() 加密密码?

4

1 回答 1

0

可能会写一本关于可能性的小书。我的第一个问题是存储加密密码的要求,或者密码是否必须通过加密的线路。如果存储是唯一的要求,我倾向于让 DBMS 做一个高级程序员团队花了几个月时间试图做到的事情,而不是自己重新发明轮子。即使它必须通过加密的线路,我也会先查看 DBMS 提供的选项。

如果您必须在客户端执行此操作并处理散列、加盐、防止代码的逆向工程,您自己,可能仍然有十几种方法可以做到这一点。我尝试的第一种方法是为密码用户界面制作一个带有虚拟列的 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

祝你好运,

特里。

于 2012-04-12T02:46:23.460 回答