none
Descriptografia AES 128 ECB RRS feed

  • Discussão Geral

  • Bom dia.

    Recebi um arquivo texto do cliente, porém dentro dele uma coluna está criptografada como AES 128 ECB , ele nos enviou a chave, mas não consigo fazer isso via código. Vocês podem me ajudar?

    Utilizo o SQL Server 2012.

    quarta-feira, 9 de janeiro de 2019 13:06

Todas as Respostas

  • Olá, Boa tarde.

    Peço quie veja se a matéria do link abaixo pode te ajudar:

    https://docs.microsoft.com/pt-br/sql/t-sql/functions/decryptbykey-transact-sql?view=sql-server-2017

    Aguardo

    Abs.

    quarta-feira, 9 de janeiro de 2019 16:09
  • Obrigada pela resposta.

    Eu cheguei a dar uma olhada neste link, mas fiquei confusa pois precisa de certificado.

    Eu não tenho isso, tenho apenas a chave para descriptografar

    quarta-feira, 9 de janeiro de 2019 16:54
  • Olá.

    Eu acredito que a decriptografia deve ocorrer na sua aplicação usando a chave; poderia verificar ?

    Aguardo

    Abs

    quarta-feira, 9 de janeiro de 2019 17:50
  • Boa tarde.

    Não tenho uma aplicação para isso. Simplesmente recebi o arquivo, importei e preciso tratar dentro do SQL Server

    quinta-feira, 10 de janeiro de 2019 17:25
  • Boa tarde..

    Mais uma vez, veja se te ajuda:

    https://www.devglan.com/online-tools/aes-encryption-decryption

    Aguardo

    Abs

    quinta-feira, 10 de janeiro de 2019 18:05
  • Boa tarde..

    Mais uma vez, veja se te ajuda:

    https://www.devglan.com/online-tools/aes-encryption-decryption

    Aguardo

    Abs

    Veja este também:

    https://www.browserling.com/tools/aes-decrypt

    quinta-feira, 10 de janeiro de 2019 18:06
  • Paty,

    Você não possui nenhum certificado de criptografia em seu servidor SQL Server?

    Poderia nos descrever melhor a sua necessidade e o que realmente esta fazendo para tentar resolver.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 10 de janeiro de 2019 23:06
  • Ola, 

    Tentei os dois sites que me passaram, mas quando coloco os dados não chega na mesma informação que tenho. 

    Atualmente estou usando um site para isso, mas só consigo descriptografar um, por um, e isso é inviável, tenho mais de 150 mil linhas na minha tabela.

    Não temos nenhum certificado de criptografia, nunca usamos isso aqui na empresa que trabalhamos.

    Simplesmente recebi um arquivo, nele constam algumas colunas, e a coluna cpf (só essa coluna) está criptografada. Eu precisaria converter os dados para uma coluna não criptografada.

    Já tentei alguns códigos que achei tanto no sql, quanto em java, mas não consigo.

    sexta-feira, 11 de janeiro de 2019 19:08
  • Ola, 

    Tentei os dois sites que me passaram, mas quando coloco os dados não chega na mesma informação que tenho. 

    Atualmente estou usando um site para isso, mas só consigo descriptografar um, por um, e isso é inviável, tenho mais de 150 mil linhas na minha tabela.

    Não temos nenhum certificado de criptografia, nunca usamos isso aqui na empresa que trabalhamos.

    Simplesmente recebi um arquivo, nele constam algumas colunas, e a coluna cpf (só essa coluna) está criptografada. Eu precisaria converter os dados para uma coluna não criptografada.

    Já tentei alguns códigos que achei tanto no sql, quanto em java, mas não consigo.

    Bom dia .. você disse que não consegue; peço a gentileza de descrever exatamente como você está fazendo, e qual é o resultado ?  (retorna alguma msg de erro, retorna os dados criptografados, enfim, como é o retorno?)

    No aguardo.

    Abs.

    segunda-feira, 14 de janeiro de 2019 12:58
  • Paty,

    Quais funções de descriptografia você tentou utilizar via SQL Server?

    Os exemplos abaixo estão próximos do que você esta fazendo:

    USE AdventureWorks;
    -- Get the pass phrase from the user.
    DECLARE @PassphraseEnteredByUser nvarchar(128);
    SET @PassphraseEnteredByUser 
    = 'A little learning is a dangerous thing!';
    
    -- Decrypt the encrypted record.
    SELECT CardNumber, CardNumber_EncryptedbyPassphrase 
        AS 'Encrypted card number', CONVERT(nvarchar,
        DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1 
        , CONVERT(varbinary, CreditCardID)))
        AS 'Decrypted card number' FROM Sales.CreditCard 
        WHERE CreditCardID = '3681';
    GO
    
    USE SQLCriptografia
    GO
    
    --Criando a Table TbUser
    Create Table TbUser
     (IdUsuario Int Identity(1,1) Constraint [PK_IdUsuario] Primary Key Clustered,
      NomeUsuario Varchar(30) Not Null,
      TxSenha VarBinary(255) Not Null,
      DataCadastro Date Default GetDate() 
     )
    Go
    
    --Criando Função Scalar para Criptografia de dados
    Alter Function Fun_CriptografaSenha (@TxSenha VarChar(1000))
    Returns VarBinary(4000)
    As
     Begin
      --Chave de Criptografia
      Declare @ChaveCriptografia VarChar(1000) = 'ChaveCriptografia'
      
      Return EncryptByPassPhrase(@ChaveCriptografia, @TxSenha)
     End
    Go
    
    --Inserindo os Dados utilizando a Função Fun_CriptografaSenha
    Insert Into TbUser(NomeUsuario,TxSenha) Output inserted.NomeUsuario, inserted.TxSenha
     Values ('Pedro Antonio',SQLCriptografia.dbo.Fun_CriptografaSenha('MinhaSenha'))
    Go 
    
    --Criando Função Scalar para Descriptografia de dados
    Create Function Fun_DescriptografaSenha (@NomeUsuario VarChar(20))
    Returns VarChar(4000)
    As
     Begin
      --Chave de Criptografia
      Declare @ChaveCriptografia VarChar(1000) = 'ChaveCriptografia'
      
      --Recuperando a Senha Criptografada
      Declare @SenhaCriptografada VarChar(Max)=(Select TxSenha From TbUser 
                                                Where NomeUsuario 
                                                Collate SQL_Latin1_General_CP1_CS_AS = @NomeUsuario)
      
      --Descriptografando a Senha
      Return DecryptByPassPhrase(@ChaveCriptografia,@SenhaCriptografada) 
     End
    Go
    
    --Consultando a Senha com Nome do Usuário Incorreto
    Select SQLCriptografia.dbo.Fun_DescriptografaSenha('Pedro') As 'Senha'
    
    --Consultando a Senha com Nome do Usuário Correto
    Select SQLCriptografia.dbo.Fun_DescriptografaSenha('Pedro Antonio') As 'Senha'
    
    --Criando Função Scalar para Descriptografia de dados com Autenticação de Usuário
    Create Function dbo.[Fun_DescriptografaSenhaAutenticada] (@NomeUsuario VarChar(20), @TxSenha VarChar(50))
    Returns VarChar(4000)
    As
     Begin
     
      --Chave de Criptografia
      Declare @ChaveCriptografia VarChar(1000) = 'ChaveCriptografia'
    
      --Recuperando a Senha Criptografada
      Declare @SenhaCriptografada VarChar(Max)=(Select TxSenha From TbUser 
                                                Where NomeUsuario 
                                                Collate SQL_Latin1_General_CP1_CS_AS = @NomeUsuario)
        
      --Descriptografando a Senha
      Declare @Descriptogra VarChar(5000) = DecryptByPassPhrase(@ChaveCriptografia,@SenhaCriptografada)
    
      --Verificando se a senha é válida em relação ID do Usuário    
      Declare @Retorno VarChar(4000)
      
      If (@Descriptogra Collate SQL_Latin1_General_CP1_CS_AS = @TxSenha)
       Select @Retorno='Usuário '+ @NomeUsuario + ' poderá usar o sistema!!!'
      Else  
       Select @Retorno='As credenciais do usuário não conferem!!!'   
       
      Return @Retorno 
     End
    Go
    
    --Utilizando a Função Scalar Fun_DescriptograSenhaAutenticada com Usuário inexistente
    Declare @Usuario Varchar(30) = 'Pedro', 
            @Senha VarChar(30) = 'Senha'
    
    Select dbo.Fun_DescriptografaSenhaAutenticada(@Usuario, @Senha) As 'Autenticação Usuário'
    
    --Utilizando a Função Scalar Fun_DescriptograSenhaAutenticada com Usuário correto e senha errada
    Declare @Usuario Varchar(30) = 'Pedro Antonio', 
            @Senha VarChar(30) = 'Senha'
    
    Select dbo.Fun_DescriptografaSenhaAutenticada(@Usuario, @Senha) As 'Autenticação Usuário'
    
    --Utilizando a Função Scalar Fun_DescriptograSenhaAutenticada com Usuário e senha corretos
    Declare @Usuario Varchar(30) = 'Pedro Antonio', 
            @Senha VarChar(30) = 'MinhaSenha'
    
    Select dbo.Fun_DescriptografaSenhaAutenticada(@Usuario, @Senha) As 'Autenticação Usuário'



    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 15 de janeiro de 2019 12:14