DB2中的數(shù)據(jù)值加密
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2008-10-08 19:02:45 作者:佚名
我要評(píng)論
多年來(lái),數(shù)據(jù)庫(kù)已經(jīng)能夠阻止未經(jīng)授權(quán)的人看到其中的數(shù)據(jù),這通常是通過(guò)數(shù)據(jù)庫(kù)管理器中的特權(quán)和權(quán)限來(lái)實(shí)現(xiàn)的。在當(dāng)前的環(huán)境下,對(duì)存儲(chǔ)數(shù)據(jù)的保密的需求日益增長(zhǎng)。這意味著即使 DBA 對(duì)表中的數(shù)據(jù)有完全的訪(fǎng)問(wèn)權(quán)限,但是表中可能還有數(shù)據(jù)擁有者不希望任何其他人看到的某些信
多年來(lái),數(shù)據(jù)庫(kù)已經(jīng)能夠阻止未經(jīng)授權(quán)的人看到其中的數(shù)據(jù),這通常是通過(guò)數(shù)據(jù)庫(kù)管理器中的特權(quán)和權(quán)限來(lái)實(shí)現(xiàn)的。在當(dāng)前的環(huán)境下,對(duì)存儲(chǔ)數(shù)據(jù)的保密的需求日益增長(zhǎng)。這意味著即使 DBA 對(duì)表中的數(shù)據(jù)有完全的訪(fǎng)問(wèn)權(quán)限,但是表中可能還有數(shù)據(jù)擁有者不希望任何其他人看到的某些信息。特別是對(duì)于基于 Web 的應(yīng)用程序,這一問(wèn)題就更加明顯了,在這種應(yīng)用程序中,用戶(hù)輸入的數(shù)據(jù)(比如信用卡號(hào))需要保存起來(lái),以備同一用戶(hù)以后使用該應(yīng)用程序。同時(shí),用戶(hù)擁有者希望能夠確保任何其他人不能訪(fǎng)問(wèn)這種數(shù)據(jù)。為了實(shí)現(xiàn)這種功能,DB2 內(nèi)置了一些 SQL 函數(shù),這些函數(shù)允許應(yīng)用程序加密和解密數(shù)據(jù)。當(dāng)將數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中時(shí),可以使用用戶(hù)提供的加密密碼對(duì)其加密。當(dāng)檢索該數(shù)據(jù)的時(shí)候,必須提供相同的密碼才能解密數(shù)據(jù)。對(duì)于要多次使用同一個(gè)密碼的情況,可以使用一個(gè)賦值語(yǔ)句設(shè)置 ENCRYPTION PASSWORD 值,并令其在某次連接期間內(nèi)有效。
本文將描述這些 SQL 函數(shù),并給出一些關(guān)于如何使用這些加密函數(shù)的例子。我們還將討論在關(guān)系數(shù)據(jù)庫(kù)中使用加密數(shù)據(jù)的設(shè)計(jì)和性能相關(guān)事項(xiàng)。
實(shí)現(xiàn)
下面顯示了這些新的 SQL 函數(shù)的簽名。在 DB2 文檔的 SQL Reference 部分中有更詳細(xì)的文檔。(為了確保對(duì)加密的數(shù)據(jù)使用正確的數(shù)據(jù)類(lèi)型和長(zhǎng)度,請(qǐng)務(wù)必閱讀 SQL Reference 中 ENCRYPT 函數(shù)下的“Table Column Definition”部分。)
Encrypt (StringDataToEncrypt, PasswordOrPhrase, PasswordHint)
Decrypt_Char(EncryptedData, PasswordOrPhrase)
GetHint(EncryptedData)
Set Encryption Password
用于對(duì)數(shù)據(jù)加密的算法是一個(gè) RC2 分組密碼(block cipher),它帶有一個(gè) 128 位的密鑰。這個(gè) 128 位的密鑰是通過(guò)消息摘要從密碼得來(lái)的。加密密碼與 DB2 認(rèn)證無(wú)關(guān),僅用于數(shù)據(jù)的加密和解密。
這里可以提供一個(gè)可選的參數(shù) PasswordHint,這是一個(gè)字符串,可以幫助用戶(hù)記憶用于對(duì)數(shù)據(jù)加密的 PasswordOrPhrase。(例如,可以使用 'George' 作為記憶 'Washington'的提示。)
列級(jí)加密
列級(jí)加密(column level encryption)意味著對(duì)于一個(gè)給定列中的所有值都使用相同的密碼進(jìn)行加密。這種類(lèi)型的加密可以在視圖中使用,也可以在使用了一個(gè)公共密碼的情況下使用。當(dāng)對(duì)一個(gè)或多個(gè)表中所有的行使用相同的密鑰時(shí),ENCRYPTION PASSWORD 專(zhuān)用寄存器將十分有用。
例 1:這個(gè)例子使用 ENCRYPTION PASSWORD 值來(lái)保存加密密碼。它對(duì)雇員的社會(huì)保險(xiǎn)號(hào)進(jìn)行加密,并以經(jīng)過(guò)加密的形式將其存儲(chǔ)在 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:這個(gè)例子在結(jié)合使用視圖的情況下使用 ENCRYPTION PASSWORD 值來(lái)保存加密密碼。下面的語(yǔ)句聲明了 emp 表的一個(gè)視圖:
create view clear_ssn (ssn) as select decrypt_char(ssn) from emp;
在應(yīng)用程序代碼中,我們將 ENCRYPTION PASSWORD 設(shè)置為 'Ben123',現(xiàn)在可以使用 clear_ssn 視圖了。
set encryption password = 'Ben123';
select ssn from clear_ssn;
行-列(單元格)或 集合-列級(jí)加密
行-列(單元格)或 集合-列(Set-Column)級(jí)加密意味著在一個(gè)加密數(shù)據(jù)列內(nèi)使用多個(gè)不同的密碼。例如,Web 站點(diǎn)可能需要保存客戶(hù)信用卡號(hào)(ccn)。在這個(gè)數(shù)據(jù)庫(kù)中,每個(gè)客戶(hù)可以使用他自己的密碼或短語(yǔ)來(lái)加密 ccn。
例 3:Web 應(yīng)用程序收集關(guān)于客戶(hù)的用戶(hù)信息。這種信息包括客戶(hù)名稱(chēng)(存儲(chǔ)在宿主變量 custname中)、信用卡號(hào)(存儲(chǔ)在宿主變量 cardnum中)和密碼(存儲(chǔ)在宿主變量 userpswd中)。應(yīng)用程序像下面這樣執(zhí)行客戶(hù)信息的插入操作。
insert into customer (ccn, name) values(encrypt(:cardnum, :userpswd), :custname)
當(dāng)應(yīng)用程序需要重新顯示某客戶(hù)的信用卡信息時(shí),客戶(hù)要輸入密碼,同樣該密碼也要存儲(chǔ)在宿主變量 userpswd 中。之后,可以像下面這樣檢索該 ccn :
select decrypt_char(ccn, :userpswd) from customer where name = :custname;
例 4:這個(gè)例子使用提示來(lái)幫助客戶(hù)記憶他們的密碼。這里使用與例 3 相同的應(yīng)用程序,該應(yīng)用程序?qū)⑻崾颈4娴剿拗髯兞?pswdhint中。假設(shè) userpswd 的值是 'Chamonix', pswdhint的值是 'Ski Holiday'。
insert into customer (ccn, name)
values(encrypt(:cardnum, :userpswd, :pswdhint), :custname)
如果客戶(hù)請(qǐng)求關(guān)于所使用的密碼的提示,可以使用下面的查詢(xún)。
select gethint(ccn) into :pswdhint from customer where name = :custname;
pswdhint的值被設(shè)置為"Ski Holiday"。
加密非字符值
數(shù)值和日期/時(shí)間數(shù)據(jù)類(lèi)型的加密通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換得到間接的支持。非字符的 SQL 類(lèi)型通過(guò)強(qiáng)制轉(zhuǎn)換為 "varchar" 或 "char",就可以被加密了。有關(guān)強(qiáng)制類(lèi)型轉(zhuǎn)換的更多信息,請(qǐng)參閱 SQL 參考文檔中的 “Casting Between Data Types” 部分。
例 5:加密和解密 TIMESTAMP 數(shù)據(jù)時(shí)用到的強(qiáng)制類(lèi)型轉(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ì)而言,會(huì)使大部分 SQL 語(yǔ)句慢下來(lái)。但是如果多加注意,多加判斷,還是可以將大量的額外開(kāi)銷(xiāo)降至最低。而且,加密數(shù)據(jù)對(duì)于數(shù)據(jù)庫(kù)的設(shè)計(jì)有著很大的影響。通常,您需要對(duì)一個(gè)模式中的一些敏感數(shù)據(jù)元素進(jìn)行加密,例如社會(huì)保險(xiǎn)號(hào)、信用卡號(hào)、病人姓名,等等。而有些數(shù)據(jù)值就不是那么適于加密了 -- 例如布爾值(true 和 false),或者其他的像整數(shù) 1 到 10 這樣的小型集合。這些值與列名一起很容易被猜出,因此需要判斷加密是否真的有用。
在某些情況下,對(duì)加密的數(shù)據(jù)創(chuàng)建索引是很好的主意。加密數(shù)據(jù)的正確匹配及連接將使用您創(chuàng)建的索引。由于加密數(shù)據(jù)實(shí)質(zhì)上是二進(jìn)制數(shù)據(jù),因此對(duì)加密數(shù)據(jù)進(jìn)行范圍檢查時(shí)需要掃描表。范圍檢查需要解密某一列在所有行的值,因此應(yīng)該避免進(jìn)行范圍檢查,至少也應(yīng)該進(jìn)行適當(dāng)?shù)恼{(diào)優(yōu)。
下面的場(chǎng)景闡明了我們的討論??紤]一種常見(jiàn)的主從(master-detail)模式,程序員可以在很多項(xiàng)目中使用這種模式。我們將對(duì)雇員的社會(huì)保險(xiǎn)號(hào)(ssn)實(shí)現(xiàn)列級(jí)加密。在主表 emp 和從表 empProject 中,ssn 將以加密的形式存儲(chǔ)。
-- 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');
相對(duì)于上面的例子,下面的兩個(gè)例子是 不應(yīng)該采用的反面典型。雖然這些查詢(xún)同樣能夠返回正確的答案,但是它們會(huì)需要為所有行解密 ssn。當(dāng)表很大的時(shí)候,這個(gè)問(wèn)題就會(huì)變得突出起來(lái)。
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';
該查詢(xún)會(huì)要求解密 emp 表的每一行以及 empProject 表的每個(gè) 'UDDI Project' 行,以執(zhí)行連接。
select projectName
from empProject
where decrypt_char(ssn)= '480-93-7558';
該查詢(xún)會(huì)要求解密 empProject 表中的每一行。
結(jié)束語(yǔ)
在本文中,我們演示了 IBM DB2 Universal Database 中的加密函數(shù)如何提供簡(jiǎn)單方式來(lái)加密敏感數(shù)據(jù)。這些函數(shù)可用來(lái)實(shí)現(xiàn)列級(jí)和行-列級(jí)的加密。在設(shè)計(jì)和實(shí)現(xiàn)期間,開(kāi)發(fā)人員應(yīng)該審視一些重要的性能相關(guān)事項(xiàng)。數(shù)據(jù)加密為隱藏私有數(shù)據(jù)增添了一種新的可用工具,即使對(duì)于管理人員,也能起到保密的作用。
本文將描述這些 SQL 函數(shù),并給出一些關(guān)于如何使用這些加密函數(shù)的例子。我們還將討論在關(guān)系數(shù)據(jù)庫(kù)中使用加密數(shù)據(jù)的設(shè)計(jì)和性能相關(guān)事項(xiàng)。
實(shí)現(xiàn)
下面顯示了這些新的 SQL 函數(shù)的簽名。在 DB2 文檔的 SQL Reference 部分中有更詳細(xì)的文檔。(為了確保對(duì)加密的數(shù)據(jù)使用正確的數(shù)據(jù)類(lèi)型和長(zhǎng)度,請(qǐng)務(wù)必閱讀 SQL Reference 中 ENCRYPT 函數(shù)下的“Table Column Definition”部分。)
Encrypt (StringDataToEncrypt, PasswordOrPhrase, PasswordHint)
Decrypt_Char(EncryptedData, PasswordOrPhrase)
GetHint(EncryptedData)
Set Encryption Password
用于對(duì)數(shù)據(jù)加密的算法是一個(gè) RC2 分組密碼(block cipher),它帶有一個(gè) 128 位的密鑰。這個(gè) 128 位的密鑰是通過(guò)消息摘要從密碼得來(lái)的。加密密碼與 DB2 認(rèn)證無(wú)關(guān),僅用于數(shù)據(jù)的加密和解密。
這里可以提供一個(gè)可選的參數(shù) PasswordHint,這是一個(gè)字符串,可以幫助用戶(hù)記憶用于對(duì)數(shù)據(jù)加密的 PasswordOrPhrase。(例如,可以使用 'George' 作為記憶 'Washington'的提示。)
列級(jí)加密
列級(jí)加密(column level encryption)意味著對(duì)于一個(gè)給定列中的所有值都使用相同的密碼進(jìn)行加密。這種類(lèi)型的加密可以在視圖中使用,也可以在使用了一個(gè)公共密碼的情況下使用。當(dāng)對(duì)一個(gè)或多個(gè)表中所有的行使用相同的密鑰時(shí),ENCRYPTION PASSWORD 專(zhuān)用寄存器將十分有用。
例 1:這個(gè)例子使用 ENCRYPTION PASSWORD 值來(lái)保存加密密碼。它對(duì)雇員的社會(huì)保險(xiǎn)號(hào)進(jìn)行加密,并以經(jīng)過(guò)加密的形式將其存儲(chǔ)在 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:這個(gè)例子在結(jié)合使用視圖的情況下使用 ENCRYPTION PASSWORD 值來(lái)保存加密密碼。下面的語(yǔ)句聲明了 emp 表的一個(gè)視圖:
create view clear_ssn (ssn) as select decrypt_char(ssn) from emp;
在應(yīng)用程序代碼中,我們將 ENCRYPTION PASSWORD 設(shè)置為 'Ben123',現(xiàn)在可以使用 clear_ssn 視圖了。
set encryption password = 'Ben123';
select ssn from clear_ssn;
行-列(單元格)或 集合-列級(jí)加密
行-列(單元格)或 集合-列(Set-Column)級(jí)加密意味著在一個(gè)加密數(shù)據(jù)列內(nèi)使用多個(gè)不同的密碼。例如,Web 站點(diǎn)可能需要保存客戶(hù)信用卡號(hào)(ccn)。在這個(gè)數(shù)據(jù)庫(kù)中,每個(gè)客戶(hù)可以使用他自己的密碼或短語(yǔ)來(lái)加密 ccn。
例 3:Web 應(yīng)用程序收集關(guān)于客戶(hù)的用戶(hù)信息。這種信息包括客戶(hù)名稱(chēng)(存儲(chǔ)在宿主變量 custname中)、信用卡號(hào)(存儲(chǔ)在宿主變量 cardnum中)和密碼(存儲(chǔ)在宿主變量 userpswd中)。應(yīng)用程序像下面這樣執(zhí)行客戶(hù)信息的插入操作。
insert into customer (ccn, name) values(encrypt(:cardnum, :userpswd), :custname)
當(dāng)應(yīng)用程序需要重新顯示某客戶(hù)的信用卡信息時(shí),客戶(hù)要輸入密碼,同樣該密碼也要存儲(chǔ)在宿主變量 userpswd 中。之后,可以像下面這樣檢索該 ccn :
select decrypt_char(ccn, :userpswd) from customer where name = :custname;
例 4:這個(gè)例子使用提示來(lái)幫助客戶(hù)記憶他們的密碼。這里使用與例 3 相同的應(yīng)用程序,該應(yīng)用程序?qū)⑻崾颈4娴剿拗髯兞?pswdhint中。假設(shè) userpswd 的值是 'Chamonix', pswdhint的值是 'Ski Holiday'。
insert into customer (ccn, name)
values(encrypt(:cardnum, :userpswd, :pswdhint), :custname)
如果客戶(hù)請(qǐng)求關(guān)于所使用的密碼的提示,可以使用下面的查詢(xún)。
select gethint(ccn) into :pswdhint from customer where name = :custname;
pswdhint的值被設(shè)置為"Ski Holiday"。
加密非字符值
數(shù)值和日期/時(shí)間數(shù)據(jù)類(lèi)型的加密通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換得到間接的支持。非字符的 SQL 類(lèi)型通過(guò)強(qiáng)制轉(zhuǎn)換為 "varchar" 或 "char",就可以被加密了。有關(guān)強(qiáng)制類(lèi)型轉(zhuǎn)換的更多信息,請(qǐng)參閱 SQL 參考文檔中的 “Casting Between Data Types” 部分。
例 5:加密和解密 TIMESTAMP 數(shù)據(jù)時(shí)用到的強(qiáng)制類(lèi)型轉(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ì)而言,會(huì)使大部分 SQL 語(yǔ)句慢下來(lái)。但是如果多加注意,多加判斷,還是可以將大量的額外開(kāi)銷(xiāo)降至最低。而且,加密數(shù)據(jù)對(duì)于數(shù)據(jù)庫(kù)的設(shè)計(jì)有著很大的影響。通常,您需要對(duì)一個(gè)模式中的一些敏感數(shù)據(jù)元素進(jìn)行加密,例如社會(huì)保險(xiǎn)號(hào)、信用卡號(hào)、病人姓名,等等。而有些數(shù)據(jù)值就不是那么適于加密了 -- 例如布爾值(true 和 false),或者其他的像整數(shù) 1 到 10 這樣的小型集合。這些值與列名一起很容易被猜出,因此需要判斷加密是否真的有用。
在某些情況下,對(duì)加密的數(shù)據(jù)創(chuàng)建索引是很好的主意。加密數(shù)據(jù)的正確匹配及連接將使用您創(chuàng)建的索引。由于加密數(shù)據(jù)實(shí)質(zhì)上是二進(jìn)制數(shù)據(jù),因此對(duì)加密數(shù)據(jù)進(jìn)行范圍檢查時(shí)需要掃描表。范圍檢查需要解密某一列在所有行的值,因此應(yīng)該避免進(jìn)行范圍檢查,至少也應(yīng)該進(jìn)行適當(dāng)?shù)恼{(diào)優(yōu)。
下面的場(chǎng)景闡明了我們的討論??紤]一種常見(jiàn)的主從(master-detail)模式,程序員可以在很多項(xiàng)目中使用這種模式。我們將對(duì)雇員的社會(huì)保險(xiǎn)號(hào)(ssn)實(shí)現(xiàn)列級(jí)加密。在主表 emp 和從表 empProject 中,ssn 將以加密的形式存儲(chǔ)。
-- 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');
相對(duì)于上面的例子,下面的兩個(gè)例子是 不應(yīng)該采用的反面典型。雖然這些查詢(xún)同樣能夠返回正確的答案,但是它們會(huì)需要為所有行解密 ssn。當(dāng)表很大的時(shí)候,這個(gè)問(wèn)題就會(huì)變得突出起來(lái)。
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';
該查詢(xún)會(huì)要求解密 emp 表的每一行以及 empProject 表的每個(gè) 'UDDI Project' 行,以執(zhí)行連接。
select projectName
from empProject
where decrypt_char(ssn)= '480-93-7558';
該查詢(xún)會(huì)要求解密 empProject 表中的每一行。
結(jié)束語(yǔ)
在本文中,我們演示了 IBM DB2 Universal Database 中的加密函數(shù)如何提供簡(jiǎn)單方式來(lái)加密敏感數(shù)據(jù)。這些函數(shù)可用來(lái)實(shí)現(xiàn)列級(jí)和行-列級(jí)的加密。在設(shè)計(jì)和實(shí)現(xiàn)期間,開(kāi)發(fā)人員應(yīng)該審視一些重要的性能相關(guān)事項(xiàng)。數(shù)據(jù)加密為隱藏私有數(shù)據(jù)增添了一種新的可用工具,即使對(duì)于管理人員,也能起到保密的作用。
相關(guān)文章
- “CMOS密碼”就是通常所說(shuō)的“開(kāi)機(jī)密碼”,主要是為了防止別人使用自已的計(jì)算機(jī),設(shè)置的一個(gè)屏障2023-08-01

QQScreenShot之逆向并提取QQ截圖--OCR和其他功能
上一篇文章逆向并提取QQ截圖沒(méi)有提取OCR功能, 再次逆向我發(fā)現(xiàn)是可以本地調(diào)用QQ的OCR的,但翻譯按鈕確實(shí)沒(méi)啥用, 于是Patch了翻譯按鈕事件, 改為了將截圖用百度以圖搜圖搜索.2023-02-04
QQ截圖是我用過(guò)的最好用的截圖工具, 由于基本不在電腦上登QQ了, 于是就想將其提取出獨(dú)立版目前除了屏幕錄制功能其他都逆出來(lái)了, 在此分享一下2023-02-04
非系統(tǒng)分區(qū)使用BitLocker加密導(dǎo)致軟件無(wú)法安裝的解決方法
很多電腦用戶(hù)在考慮自己電腦磁盤(pán)分區(qū)安全時(shí)會(huì)采用 Windows 自帶的 BitLocker 加密工具對(duì)電腦磁盤(pán)分區(qū)進(jìn)行加密。但有些人加密后就會(huì)忘記自己設(shè)置的密碼從而導(dǎo)致在安裝其它軟2020-11-25
防止離職員工帶走客戶(hù)、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生
這篇文章為大家詳細(xì)介紹了如何才能防止離職員工帶走客戶(hù)、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-27
徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、涉密人員離崗離職前防范舉
近些年企業(yè)商業(yè)機(jī)密泄漏的事件屢有發(fā)生,這篇文章主要教大家如何徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、告訴大家涉密人員離崗離職前的防范舉措,具有一定的參考價(jià)值,2017-06-27量子計(jì)算機(jī)輕松破解加密算法 如何破解加密算法?
最近有電腦用戶(hù)反應(yīng)量子計(jì)算機(jī)可以破解下載的所有的加密算法嗎?其實(shí)也不是不可以,下面虛擬就為大家講解買(mǎi)臺(tái)量子計(jì)算機(jī),如何分分鐘破解加密算法2016-09-26怎么破解Webshell密碼 Burpsuite破解Webshell密碼圖文教程
webshell是以asp、php、jsp或者cgi等網(wǎng)頁(yè)文件形式存在的一種命令執(zhí)行環(huán)境,一種網(wǎng)頁(yè)后門(mén)。黑客通常會(huì)通過(guò)它控制別人網(wǎng)絡(luò)服務(wù)器,那么怎么破解webshell密碼呢?一起來(lái)看看吧2016-09-19針對(duì)Linux系統(tǒng)全盤(pán)加密的啟動(dòng)攻擊
本文討論了針對(duì)Linux系統(tǒng)全盤(pán)加密的冷啟動(dòng)攻擊,大家都認(rèn)為這種攻擊是可行的,但執(zhí)行這么一次攻擊有多難?攻擊的可行性有多少呢?需要的朋友可以參考下2015-12-28防止泄露公司機(jī)密、企業(yè)數(shù)據(jù)防泄密軟件排名、電腦文件加密軟件排行
面對(duì)日漸嚴(yán)重的內(nèi)部泄密事件,我們?nèi)绾问刈o(hù)企業(yè)的核心信息,如何防止內(nèi)部泄密也就成了擺在各個(gè)企業(yè)領(lǐng)導(dǎo)面前的一大問(wèn)題。其實(shí),針對(duì)內(nèi)網(wǎng)安全,防止內(nèi)部信息泄漏早已有了比較2015-12-17






