Sql server 2005 - crypter et décrypter des données par mot de passe

Soyez le premier à donner votre avis sur cette source.

Snippet vu 21 149 fois - Téléchargée 27 fois

Contenu du snippet

Petite présentation d'une des nouvelles fonctionnalités de SQL Server 2005 au niveau du cryptage des données.

L'exemple ici repose sur EncryptByPassphrase / DecryptByPassphrase les plus simples des fonctions de cryptage décryptage de données du moteur. Il existe d'autres fonctions EncryptByXXXXX et DecryptByXXXXX plus complexes à mettre en place mais beaucoup plus sûres en terme de protection.

Cette fonctionnalité est accessible sur toutes les éditions de SQL Server 2005, Express incluse.

Source / Exemple :


---------------------------
-- Crypte les données    --
---------------------------

-- Crée une table de test
IF OBJECT_ID('MaTable', 'U') IS NOT NULL
DROP TABLE MaTable
GO

CREATE TABLE MaTable
	(Id int identity(1,1),
     DonneesCachees varbinary(256))
GO

-- Le mot de passe, à changer si possible :o>
DECLARE @MotDePasse nvarchar(50);
SET @MotDePasse = N'azerty';

-- Insère une donnée à crypter
INSERT MaTable (DonneesCachees)
VALUES (EncryptByPassPhrase(@MotDePasse , N'1234567890', NULL))
GO

----------------------------
-- Décrypte les données   --
----------------------------

-- Le mot de passe, à changer si possible :o>
DECLARE @MotDePasse nvarchar(50);
SET @MotDePasse = N'azerty';

-- Décrypte le champ inserer
SELECT Id, CONVERT(nvarchar, DecryptByPassphrase(@MotDePasse, DonneesCachees, NULL)) AS 'DonneesNonCachees' FROM MaTable
GO

-- Supprime la table
DROP TABLE MaTable
GO

Conclusion :


Pensez à garder les N devant les chaînes de caractères, elles indiquent que la chaîne est unicode, et si vous l'omettez surtout pour le Encrypt vous aurez un problème de décryptage.

Bonne initiation à la Cryptographie sous SQL Server 2005.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.