Si desea escribir sus propias funciones para cifrar y descifrar datos, simplemente querrá llamar a DBMS_CRYPTO
encrypt
y decrypt
métodos con los parámetros apropiados (es decir, elija su algoritmo de encriptación, su clave, etc.).
Por supuesto, si escribe sus propias rutinas, asumiendo que almacena la clave en la base de datos o en algún lugar al que tenga acceso la base de datos, no está haciendo mucho por la seguridad. Es malo enviar contraseñas sin cifrar a través de la red, pero generalmente es mucho peor almacenar contraseñas sin cifrar en la base de datos (o contraseñas cifradas si hay un decrypt
). método en la base de datos que tiene acceso a la clave para descifrar los datos). Por lo general, es mucho más fácil robar datos de una base de datos que olfatear los datos que se envían a través de la red para encontrar una contraseña.
La respuesta correcta, por supuesto, sería rediseñar el sistema para que no almacene las contraseñas en absoluto. Debería almacenar hashes de contraseña (que también puede generar usando el DBMS_CRYPTO
paquete) que no son reversibles.