首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 表資料加密實戰:ENCRYPT/DECRYPT_CHAR 函數應用指南

     編輯:DB2 教學

導讀

示範使用 DB2 內建加密函數 ENCRYPT 與 DECRYPT_CHAR 實現表資料欄位層級加解密,加解密密碼設定為全域性。

實作範例

1. 建立支援二進位資料的表
C:>db2 CREATE TABLE encode_demo(col1 VARCHAR(100) FOR BIT DATA)
DB20000I SQL 命令成功完成。

2. 設定全域加解密密碼
C:>db2 SET ENCRYPTION PASSWORD = 'loveunix'
DB20000I SQL 命令成功完成。

3. 預覽加密結果
C:>db2 VALUES(ENCRYPT('loveunix'))
1
---------------------------------------------------
x'08BC44FF6A05A3D5240E86CFB2CE60F243AA83C41B7221D7'

4. 插入加密資料
C:>db2 INSERT INTO encode_demo VALUES(ENCRYPT('loveunix'))
DB20000I SQL 命令成功完成。

5. 解密查詢驗證
C:>db2 SELECT DECRYPT_CHAR(col1) AS encode FROM encode_demo
ENCODE
--------------------------------------------------------------------------------
loveunix
1 筆記錄已選擇。

關鍵說明

  • FOR BIT DATA:欄位資料以二進位方式儲存,支援加密後的二進位輸出
  • SET ENCRYPTION PASSWORD:設定 Session 層級的加解密金鑰,後續 ENCRYPT/DECRYPT 函數自動使用
  • ENCRYPT():回傳加密後的二進位資料(BLOB 型別)
  • DECRYPT_CHAR():將加密二進位資料解密並轉換為字串,若資料非字串可用 DECRYPT_BINARY()
  • 加密演算法為內建對稱式加密,金鑰長度與安全性取決於密碼複雜度

應用場景

適用於敏感欄位(如身分證字號、信用卡號、密碼雜湊)的欄位層級加密保護,確保資料在儲存與傳輸過程中的機密性。搭配權限控制,實現多層次資料安全防護。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved