2013-06-28 14 views
5
CREATE ASYMMETRIC KEY Asym_EPassword 
WITH ALGORITHM = RSA_512 
ENCRYPTION BY PASSWORD = testdemo123 

Ho crittografato una colonna Password della mia tabella con la chiave asimmetrica di crittografia di cui sopra.Decifrare la password nella query di SQL Server

Ora voglio per decifrare la colonna password dentro la mia interrogazione select

Qualcuno può suggerire come fare questo?

+16

Non stai fatti per decifrare le password. Si intende crittografare le stringhe da testare contro il valore crittografato memorizzato nel database. Se qualcosa può essere decifrato non è necessario crittografarlo, non sarebbe sicuro. – Ben

+11

Mentre sono d'accordo, non è necessario decodificare le password. Penso che l'ultima affermazione "se qualcosa può essere decodificato non ha senso crittografarlo" è leggermente sbagliato. La crittografia dovrebbe essere reversibile, in cui l'hashing è un meccanismo a senso unico. –

+0

sto solo chiedendo di recuperare la password decodificata in selezionare la query di non salvare nel database –

risposta

1
SELECT CONVERT(NVARCHAR(100), 
    DecryptByAsymKey(AsymKey_ID('Asym_EPassword'), 
    YourColumn, 'testdemo123')) AS PlainText 
FROM YourTable; 

SQLFiddle non lasciare agli utenti di creare chiavi asimmetriche, quindi per la copia demo/incolla questo alle proprie SSMS:

CREATE ASYMMETRIC KEY Asym_EPassword 
WITH ALGORITHM = RSA_512 
ENCRYPTION BY PASSWORD = 'testDemo123!' 

DECLARE @PlainText NVARCHAR(100) 
DECLARE @CipherText VARBINARY(MAX) 

SET @PlainText = 'AAAAA' 
SELECT @CipherText = EncryptByAsymKey(AsymKey_ID('Asym_EPassword'), @PlainText); 

SELECT @CipherText; 

SELECT CONVERT(NVARCHAR(100), DecryptByAsymKey(AsymKey_ID('Asym_EPassword'), @CipherText, N'testDemo123!')); 
+1

ho usato la stessa query ma il campo in chiaro ha valore nullo –

+0

@ user1826753 Controlla se hai scritto correttamente il nome della chiave e sei sicuro che i dati siano cifrati con questa chiave? –

Problemi correlati