Bem, vou começar pelo pré-requisito de obter uma chave pública para o teste, normalmente a chave pública será fornecido por uma entidade credível, neste exemplo em particular vou gerar a minha própria chave para o teste.
- Obter o certificado com o par chave pública/privada
- Ir ao IIS e escolher Server Certificates.
- Criar um certificado auto assinado (assumir que o nome dado ao certificado é test.pfx).
- Ir a linha de comandos e extrair a chave pública do certificado com o comando: sn -p text.pfx test.snk
- Registar a chave pública no SQL:
IF (select count(*) from sys.asymmetric_keys where name = 'testKey') <> 0 BEGIN DROP ASYMMETRIC KEY testKey END CREATE ASYMMETRIC KEY testKey FROM FILE = N'test.snk'
- Usar a chave pública:
DECLARE @AsymID INT; SET @AsymID = ASYMKEY_ID('testKey'); PRINT ENCRYPTBYASYMKEY(@AsymID, 'Valor a cifrar')
Uma nota final, não averiguei o motivo mas a cifra feita pelo SQL faz byte reverse, se a descifra for feita noutro local que não o SQL isso tem de ser levado em consideração.
Sem comentários:
Enviar um comentário