Oracle對資料進行加密&解密處理
root@ythdc:/# su - oracle
oracle@ythdc:/home/oracle$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Apr 1 12:30:32 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> @?/rdbms/admin/dbmsobtk.sql
Library created.
No errors.
Library created.
No errors.
Package created.
Synonym created.
Package created.
No errors.
Synonym created.
Grant succeeded.
No errors.
Package created.
No errors.
Synonym created.
SQL> CREATE OR REPLACE FUNCTION return_encrypted_data(data IN VARCHAR)
2 RETURN RAW IS
3 key VARCHAR(16) := 'A1B2C3D4E5F6G7H8';
4 encryption_mode NUMBER := DBMS_CRYPTO.ENCRYPT_AES128 +
5 DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5;
6 BEGIN
7 RETURN DBMS_CRYPTO.ENCRYPT(UTL_I18N.STRING_TO_RAW(data, 'AL32UTF8'),
8 encryption_mode,
9 UTL_I18N.STRING_TO_RAW(key, 'AL32UTF8'));
10 END;
11 /
Function created.
SQL> CREATE OR REPLACE FUNCTION return_decrypted_data(data IN RAW)
2 RETURN VARCHAR IS
3 key VARCHAR(16) := 'A1B2C3D4E5F6G7H8';
4 encryption_mode NUMBER := DBMS_CRYPTO.ENCRYPT_AES128 +
5 DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5;
6 BEGIN
7 RETURN UTL_RAW.CAST_TO_VARCHAR2(DBMS_CRYPTO.DECRYPT(data,
8 encryption_mode,
9 UTL_I18N.STRING_TO_RAW(key,
10 'AL32UTF8')));
11 END;
12 /
Function created.
SQL> select return_encrypted_data('xiaoyang') from dual;
RETURN_ENCRYPTED_DATA('XIAOYANG')
--------------------------------------------------------------------------------
369117C7BDCE806C60243E53F90AD136
SQL> select return_decrypted_data('369117C7BDCE806C60243E53F90AD136') from dual;
RETURN_DECRYPTED_DATA('369117C7BDCE806C60243E53F90AD136')
--------------------------------------------------------------------------------
xiaoyang
SQL>
oracle@ythdc:/home/oracle$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Apr 1 12:30:32 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> @?/rdbms/admin/dbmsobtk.sql
Library created.
No errors.
Library created.
No errors.
Package created.
Synonym created.
Package created.
No errors.
Synonym created.
Grant succeeded.
No errors.
Package created.
No errors.
Synonym created.
SQL> CREATE OR REPLACE FUNCTION return_encrypted_data(data IN VARCHAR)
2 RETURN RAW IS
3 key VARCHAR(16) := 'A1B2C3D4E5F6G7H8';
4 encryption_mode NUMBER := DBMS_CRYPTO.ENCRYPT_AES128 +
5 DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5;
6 BEGIN
7 RETURN DBMS_CRYPTO.ENCRYPT(UTL_I18N.STRING_TO_RAW(data, 'AL32UTF8'),
8 encryption_mode,
9 UTL_I18N.STRING_TO_RAW(key, 'AL32UTF8'));
10 END;
11 /
Function created.
SQL> CREATE OR REPLACE FUNCTION return_decrypted_data(data IN RAW)
2 RETURN VARCHAR IS
3 key VARCHAR(16) := 'A1B2C3D4E5F6G7H8';
4 encryption_mode NUMBER := DBMS_CRYPTO.ENCRYPT_AES128 +
5 DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5;
6 BEGIN
7 RETURN UTL_RAW.CAST_TO_VARCHAR2(DBMS_CRYPTO.DECRYPT(data,
8 encryption_mode,
9 UTL_I18N.STRING_TO_RAW(key,
10 'AL32UTF8')));
11 END;
12 /
Function created.
SQL> select return_encrypted_data('xiaoyang') from dual;
RETURN_ENCRYPTED_DATA('XIAOYANG')
--------------------------------------------------------------------------------
369117C7BDCE806C60243E53F90AD136
SQL> select return_decrypted_data('369117C7BDCE806C60243E53F90AD136') from dual;
RETURN_DECRYPTED_DATA('369117C7BDCE806C60243E53F90AD136')
--------------------------------------------------------------------------------
xiaoyang
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23135684/viewspace-631001/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS中使用RSA對資料進行加密解密iOS加密解密
- 資料加密-國密SM2對資料進行加密加密
- RSA 非對稱加密&解密,超長字串分塊處理加密解密字串
- 後臺對Json資料加密、解密JSON加密解密
- cocos2dx之CCUserDefault及其資料進行加密解密加密解密
- 如何對大資料進行分析和處理?_光點科技大資料
- 對pandas進行資料預處理的例項講解
- java使用DES加密方式,實現對資料的加密解密Java加密解密
- Jmeter使用beanshell對資料進行加密傳輸JMeterBean加密
- 使用 canvas 對影象進行處理Canvas
- Oracle ----加密解密Oracle加密解密
- 如何基於香橙派AIpro對影片/影像資料進行預處理AI
- 使用Spark和Cassandra進行資料處理(一)Spark
- 利用Python Pandas進行資料預處理-資料清洗Python
- 海量資料處理_使用外部表進行資料遷移
- 對稱、非對稱的加密技術是如何對網站資料進行雙重加密?加密網站
- Flutter 的加密和解密資料Flutter加密解密
- PHP中使用OpenSSL生成RSA公鑰私鑰及進行加密解密示例(非對稱加密)PHP加密解密
- 使用HttpURLConnection訪問介面進行資料處理HTTP
- python對介面中的資料進行md5加密Python加密
- 建立一個加密表空間並對錶內資料進行加密的示例加密
- 探討NET Core資料進行3DES加密或解密弱金鑰問題3D加密解密
- 使用Preprocessor前處理器語句對外部表進行介入處理
- RSA 非對稱加密&解密加密解密
- dbms_obfuscation_toolkit(資料加密解密)加密解密
- 資料的加密和解密初識加密解密
- Oracle 重複資料處理Oracle
- oracle大批次資料處理Oracle
- 對於重要的資料檔案,用什麼方法進行加密?加密
- 如何在HarmonyOS對資料庫進行備份,恢復與加密資料庫加密
- 使用網頁前端JavaScript使用RSA對長字串進行加密及測試解密,1024位可對長字串進行網頁前端JavaScript字串加密解密
- 使用Base64進行string的加密和解密加密解密
- 如何利用Rman對Oracle資料庫進行備份Oracle資料庫
- win10加密資料夾如何解密_win10已加密的資料夾如何解密Win10加密解密
- 資訊保安:資料加密實戰!對專案中資料使用MD5演算法進行加密加密演算法
- 資料加密(對稱加密和非對稱加密)加密
- 使用matlab對影像進行二值化處理Matlab
- 商業智慧如何幫助企業進行資料處理?