SQL Server 2005: Column Encryption, part 2

Come promesso nel post precedente, ecco il codice per criptare i valori prima di memorizzarli all'interno di una colonna:

--creazione di una tabella di esempio
create table tab1 (id int, cardno varbinary(max))

--si crea la master key
create master key encryption by password =
'Passw0rd!'

--si crea il certificato
create certificate foo with subject = 'foo'

--si crea una chiave e la si protegge con il certificato creato in precedenza
create symmetric key fookey with algorithm = triple_des encryption by certificate foo

--si notifica a SQL che si desidera usare la chiave
open symmetric key fookey using certificate foo

--si inseriscono i valori e si criptano quelli desiderati
insert tab1(id, cardno)  values (1, encryptByKey(Key_GUID('fookey'), '12345678'))

--così facendo vedo i valori criptati. Nel caso un cui non avessi aperto la chiave vedrei dei valori NULL
select * from tab1

--così invece posso accedere al valore decriptato
select cast(decryptByKey(cardno) as varchar(50)) from tab1

--chiudo la chiave una volta che ho finito
close symmetric key fookey

L'algoritmo utilizzato può essere, come in questo caso, triple_des, ma sono supportati numerosi altri algortimi. Che dire? Grandioso! (come tutte le altre feature si SQL Server 2005 a dire il vero )

Print | posted on mercoledì 2 febbraio 2005 21:57

Comments have been closed on this topic.

Copyright © Davide Mauri

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski