Entschlüsselung von bereits DES-verschlüsselten data (von Java app) in SQL server

Hier ist mein Fall: Ich habe eine Spalte in meinem DB, die verschlüsselte data enthält. Diese Spalte ist regelmäßig VARCHAR Spalte. Diese data wurden von der Java App mit dem DES/ECB/PKCS5Padding Algorithmus DES/ECB/PKCS5Padding . Ich habe Zugriff auf die Schlüsseldatei, die zur Verschlüsselung dieser data verwendet wurde.

Was ich brauche, ist, diese data mit T-SQL zu entschlüsseln. Ist es möglich?

Ich bin mir bewusst, dass SQL server Verschlüsselung / Entschlüsselung Mechanismus, aber es scheint, dass sie für "neue" data (Ich bin die Erstellung von Tabellen und starten Putting data in sie), die von SQL server selbst verschlüsselt ist, nicht bereits von anderen App verschlüsselt.

Eigentlich ist es ähnlich wie diese Encrypt In .NET / Entschlüsseln in SQL server aber Antwort bezieht sich auf C #, also nicht mein Fall …

Ich habe festgestellt, dass es wahrscheinlich mit:

 CREATE SYMMETRIC KEY TestSymmKey WITH ALGORITHM = DES, KEY_SOURCE = 'initial_bytes' ENCRYPTION BY PASSWORD = 'windowspass'; GO DECLARE @KeyGUID UNIQUEIDENTIFIER; SET @KeyGUID = KEY_GUID('TestSymmKey'); OPEN SYMMETRIC KEY TestSymmKey DECRYPTION BY PASSWORD = 'windowspass'; SELECT ENCRYPTBYKEY(@KeyGUID, 'Lorem ipsum') 

Ich kann sehen, dass die zurückgegebenen Werte für dieselbe Eingabe unterschiedlich sind:

 0x0082099FAF76A74581FAA53B7FE26B8001000000DF8C5134EF5FD25C89E221C1443810AC325F28AC083C48FBEFF337D4C247B83A39294A077E54E8A2 0x0082099FAF76A74581FAA53B7FE26B800100000087FF86D86DFFD6C32F7696DCA13BF4E85A032910B85E92731D493AC4FCE9756C07DA82F5AA0F4313 0x0082099FAF76A74581FAA53B7FE26B80010000003CDA110EB854563BAB73305A52AC4B78C5A613E167E7BBC8467195832C8810683CB19CF080FCC520 

Dies ist wahrscheinlich Ursache für irgendeine Art von Salz-Mechanismus. So kann ich nicht einfach bekommen DES Ergebnis von einer anderen App generiert und versuchen, es zu entschlüsseln, wie SQL server wird davon ausgehen, dass Salz ist in ihm?

Das erste Problem ist, dass ich keine Option zum Festlegen von Padding und Modus (zB ECB) sehe. Die zweite ist das Ergebnis ist binär und ich brauche es als String so wahrscheinlich einige Base64 Encoder benötigt wird?

Mein Ziel ist, dass ich in T-SQL entschlüsseln kann einen String, der in Java oder sogar Online-Tool verschlüsselt wurde (zB http://www.tools4noobs.com/online_tools/encrypt/ )