2009-02-27 10 views
0

Nous avons récemment implémenté des clés symétriques dans MS SQL 2005 pour crypter et décrypter les cartes de crédit, vérifier les numéros de routage/compte.Assemblage CLR pour cryptage/décryptage

Idéalement, nous aimerions qu'une fonction définie par l'utilisateur puisse effectuer le cryptage et le décryptage, mais ce n'est pas possible puisque les fonctions encryptbykey et decryptbykey ne peuvent pas être utilisées dans des fonctions définies par l'utilisateur. Au départ, je pensais que nous pouvions créer un assemblage CLR (en C#) avec des fonctions pour le faire, cependant, comme j'ai appris les mêmes règles s'appliquent.

Je me demandais ce que les autres faisaient pour réaliser facilement cette fonctionnalité. Création de nombreuses procédures stockées telles que:

OUVERT ...
KEY SYMMETRIC SELECT nom d'utilisateur, DecryptByKey (...) AS mot de passe FERMER KEY SYMMETRIC ...

... pour les nombreux domaines dans lesquels nous allons crypter/décrypter serait très fastidieux.

+0

Vous décryptez des mots de passe? Vraiment? Vous savez que ce n'est pas du tout un bon design. Les mots de passe doivent être hachés unidirectionnels. Les clés déchiffrables rendent vulnérable chaque mot de passe de votre base de données. – Will

+0

Eh bien, je vais principalement l'utiliser pour les numéros de carte de crédit, et vérifier les numéros de routage/compte. –

+0

Je vous suggère fortement de faire des recherches en cryptage/sécurité si vous travaillez avec ce genre d'informations sensibles. Mieux vaut être bien préparé que désolé! – Will

Répondre

1

Que ce soit une bonne idée ou non, qu'en est-il d'une procédure stockée avec un paramètre de sortie pour obtenir le même résultat que le format UDF?

+0

C'est exactement ce que j'ai fini par faire. Je crée un assemblage C# sp ... créé en tant qu'assemblage pour masquer les mots de passe du certificat –