Estou migrando um aplicativo ASP antigo (escrito nos anos 2000) para uma nova plataforma e estou lutando com a melhor maneira de exportar os dados em um formato não criptografado. Tenho acesso ao site de trabalho atual, incluindo o código subjacente, e tenho o validationKey e o decryptionKey, o site exibe corretamente os dados não criptografados
O banco de dados é o Microsoft SQL Server 2019 (RTM-CU27-GDR) (KB5040948) - 15.0.4382.1 (X64) 1 de julho de 2024 20:03:23 Standard Edition (64 bits) no Windows Server 2019 Standard 10.0 (Build 17763: ).
No momento, estou apenas tentando escrever uma consulta no Azure Data Studio que irá gerar os dados em claro. Posso conectar ao db e executar consultas, mas os resultados são criptografados.
A maior parte da minha busca por uma solução (que parece que deveria ser simples!) fala sobre certificados, o que não acho relevante aqui. Também procurei por chaves simétricas conforme uma postagem, mas esta consulta não retorna resultados.
SELECT name KeyName,
symmetric_key_id KeyID,
key_length KeyLength,
algorithm_desc KeyAlgorithm
FROM sys.symmetric_keys;
Encontrei esta página que parecia ter o que eu estava procurando, mas o campo descriptografado está todo nulo.
USE mydb;
-- Get the passphrase from the user.
DECLARE @PassphraseEnteredByUser NVARCHAR(128);
SET @PassphraseEnteredByUser
= 'mydecryptphase';
-- Decrypt the encrypted record.
SELECT Title,
CONVERT(varchar,
DecryptByPassphrase(@PassphraseEnteredByUser, FirstName, 1 ))
AS 'Decrypted Name' FROM dbo.contact ;
GO
Os comentários aqui me levaram a investigar o lado da aplicação, posto aqui meus resultados, pois eles podem ajudar outra pessoa.
O aplicativo é escrito em C#5 e usa um "algoritmo de criptografia simétrica" (Rijndael/AES) para criptografar a string antes de armazená-la no banco de dados.
Portanto, tive que extrair os dados do banco de dados e usar o método de descriptografia do aplicativo para descriptografá-los.