2009-02-27 9 views
0

Wir haben kürzlich einige symmetrische Schlüssel in MS SQL 2005 zum Verschlüsseln und Entschlüsseln von Kreditkarten, zum Überprüfen von Routing-/Kontonummern implementiert.CLR Assembly for Encryption/Decryption

Im Idealfall möchten wir, dass eine benutzerdefinierte Funktion die Verschlüsselung und Entschlüsselung durchführen kann, dies ist jedoch nicht möglich, da die Funktionen encryptbykey und decryptbykey nicht in benutzerdefinierten Funktionen verwendet werden können.

Zunächst dachte ich, wir könnten eine CLR-Assembly (in C#) mit Funktionen dafür erstellen, wie ich gelernt habe, gelten die gleichen Regeln.

Ich habe mich gefragt, was andere getan haben, um diese Funktion einfach auszuführen. Erstellen von Prozeduren viele gespeichert wie:

OPEN symmetrischen Schlüssel ...
SELECT Benutzername, DecryptByKey (...) AS Passwort SCHLIEßEN symmetrischen Schlüssel ...

... für die viele Bereiche, in denen wir werden verschlüsseln/entschlüsseln wäre sehr langweilig.

+0

Sie entschlüsseln Kennwörter? "Ja wirklich?" Du weißt, das ist überhaupt kein gutes Design. Passwörter sollten in eine Richtung gehackt werden. Entschlüsselbare Schlüssel machen jedes einzelne Passwort in Ihrer Datenbank anfällig. – Will

+0

Nun, hauptsächlich werde ich es für Kreditkartennummern verwenden und Routing/Kontonummern überprüfen. –

+0

Ich würde dringend vorschlagen, etwas über Verschlüsselung/Sicherheit zu recherchieren, wenn Sie mit dieser Art von sensiblen Informationen arbeiten. Lieber gut vorbereitet als Nachsicht! – Will

Antwort

1

Ob es eine gute Idee ist oder nicht, was ist mit einer gespeicherten Prozedur mit Ausgabeparameter, um das gleiche wie ein udf zu erreichen?

+0

Das genau, was ich getan habe. Ich erstelle eine C# -Assembly-Datei, die als Assembly erstellt wurde, um die Zertifikatskennwörter auszublenden –