Jika Anda ingin menulis fungsi Anda sendiri untuk mengenkripsi dan mendekripsi data, Anda cukup memanggil DBMS_CRYPTO
encrypt
dan decrypt
metode dengan parameter yang sesuai (yaitu, pilih algoritme enkripsi Anda, kunci Anda, dll.).
Tentu saja, jika Anda menulis rutinitas Anda sendiri, dengan asumsi bahwa Anda menyimpan kunci dalam database atau di suatu tempat database memiliki akses, Anda tidak melakukan banyak hal untuk keamanan. Mengirim kata sandi yang tidak terenkripsi melalui jaringan adalah hal yang buruk tetapi umumnya jauh lebih buruk untuk menyimpan kata sandi yang tidak terenkripsi dalam database (atau kata sandi terenkripsi jika ada decrypt
metode dalam database yang memiliki akses ke kunci untuk mendekripsi data). Biasanya jauh lebih mudah untuk mencuri data dari database daripada mengendus data yang dikirim melalui jaringan untuk menemukan kata sandi.
Jawaban yang tepat, tentu saja, adalah merancang ulang sistem sehingga Anda tidak menyimpan kata sandi sama sekali. Anda harus menyimpan hash kata sandi (yang juga dapat Anda buat menggunakan DBMS_CRYPTO
package) yang tidak dapat dibalik.