Exzilla.net
Contact
Home -> Articles -> Howto: Use dbms_obfuscation_toolkit for encrypt data
 
Features
Forums
Files
Blogs
Howto: Use dbms_obfuscation_toolkit for encrypt data -- Draft
Aug 20, 2001
Spidix
Author's Bio | E-Mail
Copyright (C) 2001 exzilla.net

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

 
 
{exzilla.net -- e-development QuickStart --}



Copyright (c) 2001-2005 - Exzilla.net -  All Rights Reserved.
Contact Us | Privacy Policy | Terms & Conditions