Wenn Sie Ihre eigenen Funktionen zum Ver- und Entschlüsseln von Daten schreiben möchten, rufen Sie einfach DBMS_CRYPTO
encrypt
und decrypt
Methoden mit geeigneten Parametern (d. h. wählen Sie Ihren Verschlüsselungsalgorithmus, Ihren Schlüssel usw.).
Wenn Sie natürlich Ihre eigenen Routinen schreiben und davon ausgehen, dass Sie den Schlüssel in der Datenbank oder an einem Ort speichern, auf den die Datenbank Zugriff hat, tun Sie nicht viel für die Sicherheit. Es ist schlecht, Passwörter unverschlüsselt über das Netzwerk zu senden, aber es ist im Allgemeinen viel schlimmer, unverschlüsselte Passwörter in der Datenbank zu speichern (oder verschlüsselte Passwörter, wenn es einen decrypt
gibt Methode in der Datenbank, die Zugriff auf den Schlüssel zum Entschlüsseln der Daten hat). Es ist im Allgemeinen viel einfacher, Daten aus einer Datenbank zu stehlen, als Daten auszuspähen, die über das Netzwerk gesendet werden, um ein Passwort zu finden.
Die richtige Antwort wäre natürlich, das System so umzugestalten, dass Sie die Passwörter überhaupt nicht speichern. Sie sollten Passwort-Hashes speichern (die Sie auch mit DBMS_CRYPTO
generieren können Paket), die nicht umkehrbar sind.