Prerequistires:
Oracle 8i
Purpose:
ถ้าท่านเป็นคนหนึ่งที่ต้องมีการจัดเก็บข้อมูล
แต่กังวลว่าข้อมูลที่จัดเก็บใน Table จะมีคนอื่นที่ใช้ สิทธิที่สูงกว่ามาดูข้อมูลที่สำคัญนั้นได้
การ Encrypt ข้อมูลเสียก่อนที่จะจัดเก็บ ก็เป็นทางเลือกอีกทางเลือกหนึ่ง
สำหรับท่านที่ใช้
Oracle Database 8i การ Encrypt ข้อมูลนั้นสามารถทำได้ที่ฝั่ง Database
Server ได้เลย
ในตัวอย่าง
จะแสดงวิธีการใช้งาน dbms_obfuscation_toolkit Package ซึ่งช่วยเราในการ
encrypt data โดยใช้ Encryption Standard (DES) หรือ Triple DES
algorithms.
Step-by-Step Example:
Create testing Package
เราสร้าง
Package ที่ประกอบด้วย procedure ในการ encrypt และ decrypt ข้อมูลที่เรากำหนดมา
ก่อนที่จะ insert ข้อมูลนั้น ไปยัง Table ที่เราต้องการ
Using
Encrypt Function
การ
Encrypt เราสามารถเรียกใช้ dbms_obfuscation_toolkit พร้อมทั้งระบุ
Parameter ที่เหมาะสม ได้จาก PL/SQL Program ข้อเราได้เลย
| dbms_obfuscation_toolkit.DESEncrypt(
input_string => input_string,
key_string => key_string,
encrypted_string => encrypted_string
); |
Using
Decrypt Function
ในขั้นตอน
การ Decrypt ก็เช่นกัน
| dbms_obfuscation_toolkit.DESDecrypt(
input_string => encrypted_string,
key_string => key_string,
decrypted_string => decrypted_string
); |
Input
your data
Error
case
SQL> exec passwd_mnm.fuencrypt('fuju','x2345');
> input string : x2345
*** DES INPUT BUFFER NOT A MULTIPLE OF 8 BYTES - IGNORING EXCEPTION ***
PL/SQL procedure successfully completed.
|
Success
case
SQL> exec passwd_mnm.fuencrypt('fuju','x2345678');
> input string : x2345678
PL/SQL procedure successfully completed.
|
Query
your data
query
from table directly
SQL> select * from emembers;
EM_ID EM_PASSWORD
--------- ------------------
fuju R??em?g
|
จะเห็นได้ว่าเมื่อเรา select ข้อมูลจาก
Table โดยตรงเราจะไม่สามารถอ่านข้อมูลนั้น ๆ ได้
get data via decrypt function
SQL> exec passwd_mnm.fudecrypt('fuju');
> decrypted string output : x2345678
PL/SQL procedure successfully completed.
|
Complete Sample code:
References:
Oracle9i Supplied PL/SQL
Packages and Types Reference Release 1 (9.0.1) Part Number A89852-02
More Information:
Oracle9i Supplied PL/SQL
Packages and Types Reference Release 1 (9.0.1) Part Number A89852-02
Keywords:
pl/sql dbms_obfuscation_toolkit
encrypt decrypt
|