使用DBMS_CRYPTO加密数据

时间:2008-11-14 09:02:00

标签: plsql

我目前正在使用Oracle 10g。我使用DBMS_CRYPTO包来加密用户登录密码。为了加密或解密数据,我必须有一把钥匙。那么我应该把密钥放在哪里以便将其隐藏起来,或者是否有其他方法可以加密数据而无法解密?

在SQL Server中,我只使用PWDENCRYPT函数进行加密,当我想比较用户输入的数据是否正确时,我使用PWDCOMPARE。请咨询。谢谢。

1 个答案:

答案 0 :(得分:3)

要隐藏其他开发人员的密钥,希望本文会有所帮助,它包含一个关于密钥管理的部分:

http://www.oracle.com/technology/oramag/oracle/05-jan/o15security.html

要加密数据而不能将其解密,您可能希望查看one way hashes。 Oracle以DBMS_CRYPTO.HASH的形式提供了这个,它易于使用(如here所述):

SQL> select SYS.DBMS_CRYPTO.HASH('FFFFFF',1) from dual;
7D91F6D9BE28A9756B0D2F11D3AF4F0C

然后,您只在数据库中存储哈希值 - 如果哈希用户输入与您存储的哈希值匹配,则可以验证密码,但无法以任何方式检索密码。