Si vous voulez écrire vos propres fonctions pour chiffrer et déchiffrer les données, vous voudriez simplement appeler le DBMS_CRYPTO
encrypt
et decrypt
méthodes avec les paramètres appropriés (par exemple, choisissez votre algorithme de chiffrement, votre clé, etc.).
Bien sûr, si vous écrivez vos propres routines, en supposant que vous stockez la clé dans la base de données ou à un endroit auquel la base de données a accès, vous ne faites pas grand-chose pour la sécurité. Il est mauvais d'envoyer des mots de passe non chiffrés sur le réseau mais il est généralement bien pire de stocker des mots de passe non chiffrés dans la base de données (ou des mots de passe chiffrés s'il y a un decrypt
méthode dans la base de données qui a accès à la clé pour déchiffrer les données). Il est généralement beaucoup plus facile de voler des données d'une base de données que de sniffer les données envoyées sur le réseau afin de trouver un mot de passe.
La bonne réponse, bien sûr, serait de réorganiser le système afin que vous ne stockiez pas du tout les mots de passe. Vous devez stocker des hachages de mot de passe (que vous pouvez également générer en utilisant le DBMS_CRYPTO
package) qui sont irréversibles.