我目前正在使用 Oracle 10g。我使用 DBMS_CRYPTO 包来加密用户登录密码。为了加密或解密数据,我必须有一个密钥。那么我应该将密钥放在哪里以便对其他开发人员隐藏它,或者是否有其他方法可以加密数据而无法解密?
在 SQL Server 中,我只是使用 PWDENCRYPT 函数进行加密,当我想比较用户输入的数据是否正确时,我使用 PWDCOMPARE。请建议。谢谢你。
我目前正在使用 Oracle 10g。我使用 DBMS_CRYPTO 包来加密用户登录密码。为了加密或解密数据,我必须有一个密钥。那么我应该将密钥放在哪里以便对其他开发人员隐藏它,或者是否有其他方法可以加密数据而无法解密?
在 SQL Server 中,我只是使用 PWDENCRYPT 函数进行加密,当我想比较用户输入的数据是否正确时,我使用 PWDCOMPARE。请建议。谢谢你。
为了向其他开发人员隐藏密钥,希望这篇文章对您有所帮助,它包括一个关于密钥管理的部分:
http://www.oracle.com/technology/oramag/oracle/05-jan/o15security.html
要加密数据而无法将其解密,您可能希望研究一种方式 hashes。Oracle 以 DBMS_CRYPTO.HASH 的形式提供此功能,使用起来很简单(如此处所述):
SQL> select SYS.DBMS_CRYPTO.HASH('FFFFFF',1) from dual;
7D91F6D9BE28A9756B0D2F11D3AF4F0C
然后,您只将哈希存储在数据库中 - 如果哈希用户输入与您存储的哈希匹配,您可以验证密码,但您无法以任何方式检索密码。