網頁

2013年5月20日 星期一

db2 encrypt/decrypt value for column(表格欄位值加解密)

全球最嚴個資法,台灣說第二,不知道有沒有其他國敢跳出來說第一,所以一堆公司開始了所謂的控管,免不的,資料庫有些敏感性資料也要加密,只好找找資料,試一下db2怎麼對表格中的欄位來進行加解密。

db2 針對不同型態,提供了不同的加解密函式,根據版本不同,有些函式還未提供,或是只供內部使用,所以只把我試出來可以用的列出來。
資料型態,主要針對varchar
使用下列函式:
  • encrypt(StringDataToEncrypt, PasswordOrPhrase, PasswordHint)
  • decrypt_dhar(EncryptedData, PasswordOrPhrase)
  • Set Encryption Password

對資料加密的演算法是一個 RC2 分組密碼(block cipher),它帶有一個 128 位的密鑰。這個128位的密鑰是通過消息摘要從密碼得來的。加密密碼與DB2認證無關,僅用於資料的加解密。
另外提供一個可選的參數 PasswordHint,這是一個字串,可以幫助用戶記憶用於對 PasswordOrPhrase 提示。

db2 db2 => connect to your_database db2 => create table xxx(cardno varchar(33) for bit data) db2 => set encryption password = 'test1234'; db2 => insert into xxx values(encrypt('1234567890123456')) db2 => select decrypt_char(cardno) from xxx db2 => quit
NOTE:
密碼至少要 6byte
新增表格時欄位長度需設定為原本欄位的最大長度+9bytes,否則在新增欄位值,會出現欄位值太長的錯誤。例如cardno原本最大長度為24,在新增table時,將其設定成33 byte

沒有留言:

張貼留言