2009-09-16 48 views
0

我有一種情況,使用Oracle DBMS_OBFUSCATION_TOOLKIT DESEncrypt函數和唯一的用戶生成的散列密鑰對Oracle數據(電話號碼)進行了加密。如何解密複製到SQL Server 2008的加密的Oracle數據?

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混淆工具包DES加密函數來完成。
  • 使用DES流密碼。
  • DES加密函數使用256位散列鍵(僅使用256位中的56位)。

是否有可用於解密Oracle加密電話字符串的等效SQL Server 2008功能?

回答

1

否。雖然SQL Server中提供了DES解密,但SQL Server解密函數希望數據的格式與由EncryptByKey函數創建的格式相同。該格式是專有的,而不是公共afaik。

最好的辦法是解密Oracle中的數據並將其解密爲SQL。否則,你需要使用一些不好的方法解密它,例如。一個理解Oracle格式的SQL CLR函數。

+0

感謝Remus,這很有幫助。正如你所說的試圖解密Oracle的數據比它的價值更麻煩。我要解密,將它推送到SQL Server,然後使用EncryptByPassphrase函數重新加密。 http://technet.microsoft.com/en-us/library/ms190357.aspx – 2009-09-23 01:46:24