日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

DB2中的數(shù)據(jù)值加密(1)

瀏覽:56日期:2023-11-10 16:50:41
【導讀】本文描述如何使用 IBM DB2 Universal Database Version (Unix & Windows) 中提供的新函數(shù)輕松地將數(shù)據(jù)加密集成到數(shù)據(jù)庫應用程序中。 多年來,數(shù)據(jù)庫已經(jīng)能夠阻止未經(jīng)授權(quán)的人看到其中的數(shù)據(jù),這通常是通過數(shù)據(jù)庫治理器中的特權(quán)和權(quán)限來實現(xiàn)的。在當前的環(huán)境下,對存儲數(shù)據(jù)的保密的需求日益增長。這意味著即使 DBA 對表中的數(shù)據(jù)有完全的訪問權(quán)限,但是表中可能還有數(shù)據(jù)擁有者不希望任何其他人看到的某些信息。非凡是對于基于 Web 的應用程序,這一問題就更加明顯了,在這種應用程序中,用戶輸入的數(shù)據(jù)(比如信用卡號)需要保存起來,以備同一用戶以后使用該應用程序。同時,用戶擁有者希望能夠確保任何其他人不能訪問這種數(shù)據(jù)。為了實現(xiàn)這種功能,DB2 內(nèi)置了一些 SQL 函數(shù),這些函數(shù)答應應用程序加密和解密數(shù)據(jù)。當將數(shù)據(jù)插入到數(shù)據(jù)庫中時,可以使用用戶提供的加密密碼對其加密。當檢索該數(shù)據(jù)的時候,必須提供相同的密碼才能解密數(shù)據(jù)。對于要多次使用同一個密碼的情況,可以使用一個賦值語句設置 ENCRYPTION PASSWORD 值,并令其在某次連接期間內(nèi)有效。 本文將描述這些 SQL 函數(shù),并給出一些關(guān)于如何使用這些加密函數(shù)的例子。我們還將討論在關(guān)系數(shù)據(jù)庫中使用加密數(shù)據(jù)的設計和性能相關(guān)事項。 實現(xiàn) 下面顯示了這些新的 SQL 函數(shù)的簽名。在 DB2 文檔的 SQL Reference 部分中有更具體的文檔。(為了確保對加密的數(shù)據(jù)使用正確的數(shù)據(jù)類型和長度,請務必閱讀 SQL Reference 中 ENCRYPT 函數(shù)下的“Table Column Definition部分。) Encrypt (StringDataToEncrypt, PasswordOrPhrase, PasswordHint) Decrypt_Char(EncryptedData, PasswordOrPhrase) 12345下一頁 GetHint(EncryptedData) Set Encryption Password 用于對數(shù)據(jù)加密的算法是一個 RC2 分組密碼(block cipher),它帶有一個 128 位的密鑰。這個 128 位的密鑰是通過消息摘要從密碼得來的。加密密碼與 DB2 認證無關(guān),僅用于數(shù)據(jù)的加密和解密。 這里可以提供一個可選的參數(shù) PasswordHint,這是一個字符串,可以幫助用戶記憶用于對數(shù)據(jù)加密的 PasswordOrPhrase。(例如,可以使用 'George' 作為記憶 'Washington'的提示。) 列級加密 列級加密(column level encryption)意味著對于一個給定列中的所有值都使用相同的密碼進行加密。這種類型的加密可以在視圖中使用,也可以在使用了一個公共密碼的情況下使用。當對一個或多個表中所有的行使用相同的密鑰時,ENCRYPTION PASSWORD 專用寄存器將十分有用。 例 1:這個例子使用 ENCRYPTION PASSWORD 值來保存加密密碼。它對雇員的社會保險號進行加密,并以經(jīng)過加密的形式將其存儲在 EMP 表中。 create table emp (ssn varchar(124) for bit data); set encryption password = 'Ben123'insert into emp (ssn) values(encrypt('289-46-8832')); insert into emp (ssn) values(encrypt('222-46-1904')); insert into emp (ssn) values(encrypt('765-23-3221')); select decrypt_char(ssn) from emp; 例 2:這個例子在結(jié)合使用視圖的情況下使用 ENCRYPTION PASSWORD 值來保存加密密碼。下面的語句聲明了 emp 表的一個視圖: create view clear_ssn (ssn) as select decrypt_char(ssn) from emp; 在應用程序代碼中,我們將 ENCRYPTION PASSWORD 設置為 'Ben123',現(xiàn)在可以使用 clear_ssn 視圖了。 上一頁12345下一頁 set encryption password = 'Ben123'select ssn from clear_ssn; 行-列(單元格)或 集合-列級加密 行-列(單元格)或 集合-列(Set-Column)級加密意味著在一個加密數(shù)據(jù)列內(nèi)使用多個不同的密碼。例如,Web 站點可能需要保存客戶信用卡號(ccn)。在這個數(shù)據(jù)庫中,每個客戶可以使用他自己的密碼或短語來加密 ccn。 例 3:Web 應用程序收集關(guān)于客戶的用戶信息。這種信息包括客戶名稱(存儲在宿主變量 custname中)、信用卡號(存儲在宿主變量 cardnum中)和密碼(存儲在宿主變量 userpswd中)。應用程序像下面這樣執(zhí)行客戶信息的插入操作。 insert into customer (ccn, name) values(encrypt(:cardnum, :userpswd), :custname) 當應用程序需要重新顯示某客戶的信用卡信息時,客戶要輸入密碼,同樣該密碼也要存儲在宿主變量 userpswd 中。之后,可以像下面這樣檢索該 ccn : select decrypt_char(ccn, :userpswd) from customer where name = :custname; 例 4:這個例子使用提示來幫助客戶記憶他們的密碼。這里使用與例 3 相同的應用程序,該應用程序?qū)⑻崾颈4娴剿拗髯兞?pswdhint中。假設 userpswd 的值是 'Chamonix', pswdhint的值是 'Ski Holiday'。 insert into customer (ccn, name) values(encrypt(:cardnum, :userpswd, :pswdhint), :custname) 假如客戶請求關(guān)于所使用的密碼的提示,可以使用下面的查詢。 select gethint(ccn) into :pswdhint from customer where name = :custname; pswdhint的值被設置為"Ski Holiday"。 加密非字符值 數(shù)值和日期/時間數(shù)據(jù)類型的加密通過強制類型轉(zhuǎn)換得到間接的支持。非字符的 SQL 類型通過強制轉(zhuǎn)換為 "varchar" 或 "char",就可以被加密了。有關(guān)強制類型轉(zhuǎn)換的更多信息,請參閱 SQL 參考文檔中的 “Casting Between Data Types 部分。 上一頁12345下一頁 例 5:加密和解密 TIMESTAMP 數(shù)據(jù)時用到的強制類型轉(zhuǎn)換函數(shù)。 -- Create a table to store our encrypted value create table etemp (c1 varchar(124) for bit data); set encryption password 'next password'-- Store encrypted timestamp insert into etemp values encrypt(char(CURRENT TIMESTAMP)); -- Select & decrypt timestamp select timestamp(decrypt_char(c1)) from etemp; 例 6:加密/解密 double 數(shù)據(jù)。 set encryption password 'next password'insert into etemp values encrypt(char(1.11111002E5)); select double(decrypt_char(c1)) from etemp; 性能 加密,就其本質(zhì)而言,會使大部分 SQL 語句慢下來。但是假如多加注重,多加判定,還是可以將大量的額外開銷降至最低。而且,加密數(shù)據(jù)對于數(shù)據(jù)庫的設計有著很大的影響。通常,您需要對一個模式中的一些敏感數(shù)據(jù)元素進行加密,例如社會保險號、信用卡號、病人姓名,等等。而有些數(shù)據(jù)值就不是那么適于加密了 -- 例如布爾值(true 和 false),或者其他的像整數(shù) 1 到 10 這樣的小型集合。這些值與列名一起很輕易被猜出,因此需要判定加密是否真的有用。 在某些情況下,對加密的數(shù)據(jù)創(chuàng)建索引是很好的主意。加密數(shù)據(jù)的正確匹配及連接將使用您創(chuàng)建的索引。由于加密數(shù)據(jù)實質(zhì)上是二進制數(shù)據(jù),因此對加密數(shù)據(jù)進行范圍檢查時需要掃描表。范圍檢查需要解密某一列在所有行的值,因此應該避免進行范圍檢查,至少也應該進行適當?shù)恼{(diào)優(yōu)。 下面的場景闡明了我們的討論。考慮一種常見的主從(master-detail)模式,程序員可以在很多項目中使用這種模式。我們將對雇員的社會保險號(ssn)實現(xiàn)列級加密。在主表 emp 和從表 empProject 中,ssn 將以加密的形式存儲。 上一頁12345下一頁 -- Define Tables and Indexes for encrypted data create table emp (ssn varchar(48) for bit data, name varchar(48) ); create unique index idxEmp on emp ( ssn ) includes (name) ; create table empProject( ssn varchar(48) for bit data, projectName varchar(48) ); create index idxEmpPrj on empProject ( ssn ); -- Add some data set encryption password = 'ssnPassWord'insert into emp values (encrypt('480-93-7558'),'Super Programmer'); insert into emp values (encrypt('567-23-2678'),'Novice Programmer'); insert into empProject values (encrypt('480-93-7558'),'UDDI Project'); insert into empProject values (encrypt('567-23-2678'),'UDDI Project'); insert into empProject values (encrypt('480-93-7558'),'DB2 UDB Version 10'); -- Find the programmers working on UDDI select a.name, decrypt_char(a.ssn) from emp a, empProject b where a.ssn = b.ssn and b.project ='UDDI Project'-- Build a list of the projects that the programmer with ssn -- '480-93-7558' is working on select projectName from empProject where ssn = encrypt('480-93-7558'); 相對于上面的例子,下面的兩個例子是 不應該采用的反面典型。雖然這些查詢同樣能夠返回正確的答案,但是它們會需要為所有行解密 ssn。當表很大的時候,這個問題就會變得突出起來。 select a.name, decrypt_char(a.ssn) from emp a, empProject b where decrypt_char(a.ssn) = decrypt_char(b.ssn) and b.project ='UDDI Project'該查詢會要求解密 emp 表的每一行以及 empProject 表的每個 'UDDI Project' 行,以執(zhí)行連接。 select projectName from empProject where decrypt_char(ssn)= '480-93-7558'該查詢會要求解密 empProject 表中的每一行。 結(jié)束語 在本文中,我們演示了 IBM DB2 Universal Database 中的加密函數(shù)如何提供簡單方式來加密敏感數(shù)據(jù)。這些函數(shù)可用來實現(xiàn)列級和行-列級的加密。在設計和實現(xiàn)期間,開發(fā)人員應該審閱一些重要的性能相關(guān)事項。數(shù)據(jù)加密為隱藏私有數(shù)據(jù)增添了一種新的可用工具,即使對于治理人員,也能起到保密的作用。 上一頁12345
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产91在线精品| 国产精品日韩| 婷婷六月综合| 91欧美国产| 欧美精品不卡| 国产免费播放一区二区| 男人的天堂久久精品| 欧美日本二区| 国产伦精品一区二区三区千人斩 | 日韩在线观看中文字幕| 鲁大师影院一区二区三区| 日本精品在线中文字幕| 欧美国产中文高清| 日本成人在线不卡视频| 亚洲一区二区三区在线免费| 亚州精品视频| 青青国产91久久久久久| 欧美日韩视频免费看| 三级欧美韩日大片在线看| 国产精品蜜月aⅴ在线| 日韩在线视频精品| 蜜桃视频第一区免费观看| 国产精品va视频| 91精品二区| 国产精品一区二区精品视频观看| 国产不卡精品| 亚洲欧洲免费| 中文字幕在线看片| 蜜臀av亚洲一区中文字幕| 欧美一级久久| 九色porny丨国产首页在线| 中文字幕av亚洲精品一部二部| 国产精品嫩模av在线| 欧美在线资源| 欧美一区精品| 鲁大师成人一区二区三区| 日韩亚洲国产欧美| 国产一级久久| 成人va天堂| 麻豆精品少妇| 亚洲欧美视频| 国产日韩欧美一区二区三区| 美女少妇全过程你懂的久久| 国产精品一区亚洲| 亚洲aⅴ网站| 99国产精品久久久久久久| 久久精品亚洲人成影院| 久久精品国产99国产精品| 欧产日产国产精品视频| 美女高潮久久久| 亚洲伊人影院| 99久久夜色精品国产亚洲狼 | 欧美日韩日本国产亚洲在线| 亚洲精品第一| 91精品福利| 手机在线电影一区| 国产亚洲一卡2卡3卡4卡新区| 国产亚洲毛片在线| 亚洲播播91| 中文字幕人成乱码在线观看| 欧美视频一区| 亚洲久久视频| 丝袜美腿亚洲色图| 午夜一级在线看亚洲| 亚洲夜间福利| 91精品蜜臀一区二区三区在线 | 韩国久久久久久| 精品国产不卡| 国产黄色精品| 国产精品www994| 日韩精品视频一区二区三区| 亚洲欧美日韩专区| 性欧美长视频| 国产经典一区| 久久亚洲资源中文字| 精品视频亚洲| 久久男人天堂| 日产精品一区| 亚洲欧洲高清| 亚洲va在线| 亚洲一区观看| 日本免费一区二区视频| 88久久精品| 精品72久久久久中文字幕| 91看片一区| 欧美片第1页综合| 国产精品亚洲四区在线观看| 国产精品毛片aⅴ一区二区三区| 成人在线视频免费看| 国产成人精品亚洲日本在线观看| 日韩成人亚洲| 免费欧美日韩| 国产美女久久| 欧美一级一区| 国产成人免费精品| 午夜国产欧美理论在线播放| 日韩在线观看一区二区| 日本一区二区三区中文字幕| 精品久久美女| 国产色综合网| 91麻豆国产自产在线观看亚洲| 女人天堂亚洲aⅴ在线观看| 欧美日韩午夜| 极品日韩av| 日本视频一区二区| 欧产日产国产精品视频| 亚洲狼人精品一区二区三区| 麻豆mv在线观看| 午夜久久久久| 国产精品.xx视频.xxtv| 亚洲欧美日韩视频二区| 四虎成人av| 国产欧美日韩精品一区二区免费| 亚洲91久久| 狠狠久久伊人| 中文字幕成人| 欧美影院三区| 国产日韩欧美一区二区三区| 好看不卡的中文字幕| 亚洲最新无码中文字幕久久| 国产亚洲精品美女久久久久久久久久| 伊人久久亚洲美女图片| 欧洲一级精品| 国产精品白浆| 日韩 欧美一区二区三区| 日韩午夜电影| 亚洲伦乱视频| 精品久久视频| 国产一区二区三区天码| 麻豆精品新av中文字幕| 日韩精品亚洲专区在线观看| 午夜在线视频一区二区区别| 99精品在线| 午夜av一区| 国产中文一区| 欧美日韩水蜜桃| 久久在线电影| 久久视频一区| 最新中文字幕在线播放| 国产欧洲在线| 国产99久久| 91久久国产| 国产一区白浆| 在线一区二区三区视频| 亚洲另类黄色| 欧美日韩va| 久久一区视频| 日韩精品首页| 亚洲在线成人| 老色鬼精品视频在线观看播放| 精品亚洲二区| 日韩电影二区| 国产美女精品| 亚洲乱亚洲高清| 久久激五月天综合精品| 国产精品主播在线观看| 成人国产精品一区二区免费麻豆| 国产91精品对白在线播放| 免费人成在线不卡| 国产精品magnet| 99久久www免费| 亚洲精品亚洲人成在线观看| 久久亚洲精精品中文字幕| 极品裸体白嫩激情啪啪国产精品| 国产精品女主播一区二区三区| 日韩精品成人| 毛片在线网站| 天堂久久一区| 精品资源在线| 好看不卡的中文字幕| 久久99精品久久久野外观看| 九色porny丨国产首页在线| 日韩极品在线观看| 欧美午夜精品一区二区三区电影| 国产三级一区| 免费一区二区视频| 久久视频精品| 免费一二一二在线视频| 国产亚洲电影| 日韩三级一区| 亚洲精品小说| 日韩精品一区二区三区免费观影| 国产高清视频一区二区| 伊人成人在线视频| 四虎884aa成人精品最新| 久久精品三级| 久久国产乱子精品免费女| 亚洲精选91| 免费成人av在线播放| 国产视频久久| 婷婷精品进入| 欧美性感美女一区二区| 日韩欧美一区二区三区在线观看| 日本欧美一区| 国产视频一区在线观看一区免费| 激情国产在线| 在线中文字幕播放| 国产欧美一区二区三区米奇| 日韩精品一级二级| 日韩啪啪电影网|