3

I am trying to decryptbykey and it returns null.

--CREATE MASTER KEY ENCRYPTION
--BY PASSWORD = 'Password1'

--CREATE CERTIFICATE MyCert
--WITH SUBJECT = 'MyCert'

--CREATE SYMMETRIC KEY MyKey
--WITH ALGORITHM = TRIPLE_DES ENCRYPTION
--BY CERTIFICATE MyKey

OPEN SYMMETRIC KEY MyKey DECRYPTION
BY CERTIFICATE MyCert;

INSERT INTO sometable (ENCRYPTBYKEY(KEY_GUID('MyKey'),'12345'));

CLOSE SYMMETRIC KEY MyKey;

OPEN SYMMETRIC KEY MyKey DECRYPTION
BY CERTIFICATE MyCert;

SELECT
    CONVERT(VARCHAR(50), DECRYPTBYKEY(some_column))
FROM sometable;

CLOSE SYMMETRIC KEY MyKey;

The column is defined as varbinary(256).

The result is null. How do I change this to get the decrypted value instead of null? Or what are some of the possible pitfalls or things to check?

drizzie
  • 3,351
  • 2
  • 27
  • 32

2 Answers2

3

The issue was the column in the table wasn't large enough to store the data. So it was truncating without error.

I increased the column size and the issue was resolved.

drizzie
  • 3,351
  • 2
  • 27
  • 32
2

With my sample sometable this script works well. So please include your table definition.

Then I suppose you should test IF KEY_GUID('MyKey') IS NOT NULL..

Roman Pokrovskij
  • 9,449
  • 21
  • 87
  • 142