Comment crypter et décrypter des informations hautement sensibles dans la database SQL Server avec ASP Classic?

J'ai vérifié différentes questions sur stackoverflow et bien sur google, mais je ne trouve pas vraiment de solution spécifique à cette question:

Comment puis-je créer une fonction dans ASP Classic pour chiffrer et déchiffrer des informations hautement sensibles dans une database SQL Server? Comme fx. un numéro de security sociale ou quelque chose de similaire?

(Ou est-il possible de faire dans ma string SQL?)

Et oui, je sais comment créer une fonction avec ASP;)

Et non, je ne peux tout simplement pas hacher l'information avec SHA ou MD5, parce qu'ils ne fonctionnent que dans un sens. J'en ai besoin pour travailler dans les deux sens!

Plus de security, plus on est de fous! 🙂

MODIFIER:
Après, j'ai trouvé ceci:

http://www.4guysfromrolla.com/webtech/010100-1.shtml

Mais je ne sais pas vraiment si cela est assez sécurisé et le fera? De quoi je peux voir, ça va dans les deux sens?

Il peut être utile de permettre à SQL Server de gérer le chiffrement / déchiffrement à l'aide de keys / certificates. De cette façon, vous n'avez pas à rouler les vôtres avec ASP et la gestion de ce système est conservée là où résident datatables elles-mêmes. Il y a aussi l'avantage de ne pas avoir à mettre à jour ce process si vous décidez de passer à une autre plateforme.

C'est un process simple pour créer les keys sur le server et leur utilisation après ce point est également simple, par exemple;

Crypter;

OPEN SYMMETRIC KEY mykey DECRYPTION BY CERTIFICATE [mycert] UPDATE table SET number = EncryptByKey(Key_GUID('mykey'), @number) 

Déchiffrer;

  OPEN SYMMETRIC KEY mykey DECRYPTION BY CERTIFICATE [mycert] SELECT CONVERT(varchar, DecryptByKey(number)) AS number FROM TABLE 

Un bon aperçu de ceci peut être trouvé ici Introduction au encryption de SQL Server

Vous pouvez utiliser le chiffrement Rinjdael avec succès dans VBScript avec cette bibliothèque . Les fonctions keys sont EncryptData () et DecryptData ().

Cela semble assez sûr pour moi. De toute évidence, vous voudrez garder votre key secrète. Une variable d'application dans global.asa peut être un bon endroit pour stocker ceci (comme c'est généralement là où les strings de connection et autres sont trouvées).