如何解密复制到SQL Server 2008的加密Oracle数据?

时间:2009-09-16 22:11:38

标签: sql sql-server oracle encryption

我有一个案例,其中Oracle数据(电话号码)使用Oracle DBMS_OBFUSCATION_TOOLKIT DESEncrypt函数加密,并使用唯一的用户生成的哈希键。

SQL示例:

 update Phone
   set
     encrypted_phone = WEBX_ENCRYPT_DECRYPT.ENCRYPT(
           '212-555-1201', '8IcrEuOdDjRT5iDjqHLcsA==')
   where
     person_id = 12000039742;

唯一客户哈希密钥('8IcrEuOdDjRT5iDjqHLcsA==')是根据用户名计算的。

WEBX_ENCRYPT_DECRYPT.ENCRYPT函数调用以下Oracle包函数。

   DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT(input:  input_string,
                                       input:  key_string,
                                       output: encrypted_string)

然后将此加密的手机数据复制到SQL Server 2008数据库。

Oracle加密信息:

  • 使用Oracle Obfuscation Toolkit DES加密功能完成加密。
  • 使用DES流密码。
  • DES加密函数使用256位散列密钥(仅使用256位中的56位)。

是否有可用于解密Oracle加密电话字符串的等效SQL Server 2008功能?

1 个答案:

答案 0 :(得分:1)

没有。虽然在SQL Server中可以使用DES解密,但SQL Server解密函数希望数据的格式与EncryptByKey函数创建的格式相同。格式是专有的,而不是公开的。

最好的办法是解密Oracle中的数据并将其解密为SQL。否则你需要使用一些不好的方法解密它,例如。一个了解Oracle格式的SQL CLR函数。