Als u uw eigen functies wilt schrijven om gegevens te coderen en te decoderen, kunt u eenvoudigweg de DBMS_CRYPTO
encrypt
en decrypt
methoden met de juiste parameters (d.w.z. kies uw coderingsalgoritme, uw sleutel, enz.).
Natuurlijk, als je je eigen routines schrijft, ervan uitgaande dat je de sleutel opslaat in de database of ergens waar de database toegang heeft, doe je niet veel voor de veiligheid. Het is slecht om wachtwoorden onversleuteld over het netwerk te verzenden, maar het is over het algemeen veel erger om onversleutelde wachtwoorden op te slaan in de database (of versleutelde wachtwoorden als er een decrypt
is methode in de database die toegang heeft tot de sleutel om de gegevens te decoderen). Het is over het algemeen een stuk eenvoudiger om gegevens uit een database te stelen dan om gegevens te snuiven die via het netwerk worden verzonden om een wachtwoord te vinden.
Het juiste antwoord zou natuurlijk zijn om het systeem opnieuw te ontwerpen, zodat u de wachtwoorden helemaal niet opslaat. U moet wachtwoord-hashes opslaan (die u ook kunt genereren met de DBMS_CRYPTO
pakket) die niet omkeerbaar zijn.