国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

SQLite3數(shù)據(jù)庫加密方案

移動開發(fā) iOS
數(shù)據(jù)庫加密:用戶認(rèn)證以及訪問控制對訪問數(shù)據(jù)庫進(jìn)行了控制,但攻擊者可能會利用操作系統(tǒng)或數(shù)據(jù)庫漏洞,或物理接觸計(jì)算機(jī),而直接接觸數(shù)據(jù)庫系統(tǒng)文件,從而可能繞過身份認(rèn)證和存取控制而直接竊取或篡改數(shù)據(jù)庫內(nèi)容。對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行加密是防范這類威脅的有效手段。

針對sqlite數(shù)據(jù)庫文件,進(jìn)行加密。現(xiàn)有兩種方案如下
1.對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行加密。
2.對數(shù)據(jù)庫文件進(jìn)行加密
兩種加密方式的優(yōu)缺點(diǎn),比較如下:

一、對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行加密

優(yōu)點(diǎn):
1.實(shí)現(xiàn)數(shù)據(jù)加密快速,只需添加兩個(gè)方法
一是:對明文數(shù)據(jù)進(jìn)行加密返回密文數(shù)據(jù)
二是:對密文數(shù)據(jù)進(jìn)行解密返回明文數(shù)據(jù)
2.程序無需進(jìn)行太大變動,僅在對數(shù)據(jù)進(jìn)行
添加,修改,刪除,查詢時(shí)。針對指定的表字段
進(jìn)行修改進(jìn)行加密,解密的字段即可。

不足:
1.由于對數(shù)據(jù)進(jìn)行了加密。所以為了看到明文,必須密文進(jìn)行解密。
因此會增加處理器的消耗。因終端手機(jī)的處理能力有限,可能會出現(xiàn)
處理數(shù)據(jù)緩慢的現(xiàn)象發(fā)生。
2.僅僅對數(shù)據(jù)進(jìn)行了加密,還是可以看到數(shù)據(jù)表的sql語句,
可能猜測到表的作用。另外,如果沒有對一個(gè)表中的所有字段加密,
則可以看沒有加密的明文數(shù)據(jù)。

需要做的工作:
1.無需考慮平臺差異性,qt,android,ios都能快速
的實(shí)現(xiàn)。只需在每個(gè)平臺上,使用各自的語言,實(shí)現(xiàn)
同樣的加密,解密算法即可。
2.需要對加密算法進(jìn)行了解,選擇一種加密算法,進(jìn)行實(shí)現(xiàn)。

二、對數(shù)據(jù)庫文件進(jìn)行加密

優(yōu)點(diǎn):
1.對整個(gè)文件進(jìn)行了加密,用戶通過編輯器看不到任何有用的數(shù)據(jù),
用戶使用sqlite browser軟件也無法打開文件查看數(shù)據(jù),保證了數(shù)據(jù)安全。
2.進(jìn)行打開數(shù)據(jù)庫時(shí),使用程序sqlite3_key(db,"********",8);
即可對文件解密,對數(shù)據(jù)表的操作無需進(jìn)行加密,采用明文即可。

不足:
1.需要修改sqlite的源代碼,這個(gè)工作難度比較大。
2.需要對修改后的sqlite進(jìn)行編譯,需要對makefile有所了解,
手動編寫makefile文件,對源程序進(jìn)行編譯。因平臺差異性,可能會造成
某個(gè)平臺無法編譯生成動態(tài)鏈接庫的可能。
3.需要對數(shù)據(jù)訪問層代碼進(jìn)行修改,例如qt平臺需要將以前對數(shù)據(jù)庫操作使用的
QSqlQuery類,更改為使用sqlite3.h文件中定義操作,對數(shù)據(jù)庫操作。
其他平臺也一樣,都要做這一步的修改。
4.在程序編譯時(shí),要加入使用加密的動態(tài)鏈接庫(linux為共享庫.so文件)
windows平臺最容易,只需將所使用的dll文件copy到應(yīng)用程序中即可。
其他平臺需要實(shí)驗(yàn),看如何引入庫,如果編譯。

需要做的工作:
1.修改sqlite源代碼,追加對數(shù)據(jù)庫文件進(jìn)行加密的功能。
2.編譯含有加密功能的程序源代碼,生成各自平臺需要使用的庫文件。
3.將加密sqlite庫文件引入各自平臺中,修改數(shù)據(jù)庫訪問層代碼。
4.進(jìn)行程序的部署,測試。

加密算法的相關(guān)知識:
加密技術(shù)通常分為兩大類:“對稱式”和“非對稱式”。
對稱式加密就是加密和解密使用同一個(gè)密鑰,通常稱之為“Session Key ”這種加密技術(shù)目前被廣泛采用,如美國政府所采用的DES加密標(biāo)準(zhǔn)就是一種典型的“對稱式”加密法,它的Session Key長度為56Bits。
非對稱式加密就是加密和解密所使用的不是同一個(gè)密鑰,通常有兩個(gè)密鑰,稱為“公鑰”和“私鑰”,它們兩個(gè)必需配對使用,否則不能打開加密文件。這里的 “公鑰”是指可以對外公布的,“私鑰”則不能,只能由持有人一個(gè)人知道。它的優(yōu)越性就在這里,因?yàn)閷ΨQ式的加密方法如果是在網(wǎng)絡(luò)上傳輸加密文件就很難把密 鑰告訴對方,不管用什么方法都有可能被別竊聽到。而非對稱式的加密方法有兩個(gè)密鑰,且其中的“公鑰”是可以公開的,也就不怕別人知道,收件人解密時(shí)只要用 自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題。

常見加密算法
DES(Data Encryption Standard):對稱算法,數(shù)據(jù)加密標(biāo)準(zhǔn),速度較快,適用于加密大量數(shù)據(jù)的場合;
3DES(Triple DES):是基于DES的對稱算法,對一塊數(shù)據(jù)用三個(gè)不同的密鑰進(jìn)行三次加密,強(qiáng)度更高;
RC2和 RC4:對稱算法,用變長密鑰對大量數(shù)據(jù)進(jìn)行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)國際數(shù)據(jù)加密算法,使用 128 位密鑰提供非常強(qiáng)的安全性;
RSA:由 RSA 公司發(fā)明,是一個(gè)支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的,非對稱算法;
DSA(Digital Signature Algorithm):數(shù)字簽名算法,是一種標(biāo)準(zhǔn)的 DSS(數(shù)字簽名標(biāo)準(zhǔn)),嚴(yán)格來說不算加密算法;
AES(Advanced Encryption Standard):高級加密標(biāo)準(zhǔn),對稱算法,是下一代的加密算法標(biāo)準(zhǔn),速度快,安全級別高,目前 AES 標(biāo)準(zhǔn)的一個(gè)實(shí)現(xiàn)是 Rijndael 算法; BLOWFISH,它使用變長的密鑰,長度可達(dá)448位,運(yùn)行速度很快;
MD5:嚴(yán)格來說不算加密算法,只能說是摘要算法
對MD5算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級聯(lián)后將生成一個(gè)128位散列值。
在MD5算法中,首先需要對信息進(jìn)行填充,使其字節(jié)長度對512求余的結(jié)果等于448。因此,信息的字節(jié)長度(Bits Length)將被擴(kuò)展至N*512+448,即N*64+56個(gè)字節(jié)(Bytes),N為一個(gè)正整數(shù)。填充的方法如下,在信息的后面填充一個(gè)1和無數(shù)個(gè) 0,直到滿足上面的條件時(shí)才停止用0對信息的填充。然后,在這個(gè)結(jié)果后面附加一個(gè)以64位二進(jìn)制表示的填充前信息長度。經(jīng)過這兩步的處理,現(xiàn)在的信息字節(jié) 長度=N*512+448+64=(N+1)*512,即長度恰好是512的整數(shù)倍。這樣做的原因是為滿足后面處理中對信息長度的要求。(可參見MD5算 法詞條)
SSF33,SSF28,SCB2(SM1):國家密碼局的隱蔽不公開的商用算法,在國內(nèi)民用和商用的,除這些都不容許使用外,其他的都可以使用;

三、數(shù)據(jù)庫加密原理
目前主流的數(shù)據(jù)庫都采用了各種安全措施,主要包括用戶認(rèn)證、訪問控
制、數(shù)據(jù)加密存儲和數(shù)據(jù)庫操作審計(jì)等措施。

用戶認(rèn)證:用戶或者程序向數(shù)據(jù)庫提供自己的有效身份證明,數(shù)據(jù)庫鑒別用戶的身份是否合法,只有合法的用戶才能存取數(shù)據(jù)庫中的數(shù)據(jù)。用戶認(rèn)證是所有安全機(jī)制的前提,只有通過認(rèn)證才能進(jìn)行授權(quán)訪問和審計(jì)。

訪問控制:數(shù)據(jù)庫管理系統(tǒng)為不同的用戶分配不同的權(quán)限,保證用戶只能進(jìn)行授權(quán)的訪問。目前,一些大型數(shù)據(jù)庫(如Oracle 等)都采用了基于角色的訪問控制機(jī)制,即為用戶授予不同的角色,如db—owner,security administrator 等,不同的角色允許對數(shù)據(jù)庫執(zhí)行不同的操作。

數(shù)據(jù)庫加密:用戶認(rèn)證以及訪問控制對訪問數(shù)據(jù)庫進(jìn)行了控制,但攻擊者可能會利用操作系統(tǒng)或數(shù)據(jù)庫漏洞,或物理接觸計(jì)算機(jī),而直接接觸數(shù)據(jù)庫系統(tǒng)文件,從而可能繞過身份認(rèn)證和存取控制而直接竊取或篡改數(shù)據(jù)庫內(nèi)容。對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行加密是防范這類威脅的有效手段。

數(shù)據(jù)庫操作審計(jì):監(jiān)視和記錄用戶對數(shù)據(jù)庫所做的各種操作的安全機(jī)制,它記錄并存儲用戶的操作,用于事后分析,以檢查導(dǎo)致數(shù)據(jù)庫現(xiàn)狀的原因以及提供追蹤攻擊者的線索。數(shù)據(jù)庫的備份與恢復(fù):當(dāng)數(shù)據(jù)庫發(fā)生不可恢復(fù)的故障時(shí),可以將數(shù)據(jù)庫恢復(fù)到先前的某個(gè)一致性的狀態(tài)。

四、SQLite 加密

由于SQLite 是開放源碼的,并且在其源碼中預(yù)留了加密接口,我們可以通過實(shí)現(xiàn)其預(yù)留的加密接口實(shí)現(xiàn)口令認(rèn)證和數(shù)據(jù)庫加密以完善其加密機(jī)制。

1.口令認(rèn)證

SQLite 數(shù)據(jù)庫文件是一個(gè)普通文本文件,對它的訪問首先依賴于文件的訪問控制。在此基礎(chǔ)上,再增加進(jìn)一步的口令認(rèn)證,即在訪問數(shù)據(jù)庫時(shí)必須提供正確的口令,如果通過認(rèn)證就可以對數(shù)據(jù)庫執(zhí)行創(chuàng)建、查詢、修改、插入、刪除和修改等操作;否則,不允許進(jìn)一步的訪問。

2.數(shù)據(jù)庫加密

數(shù)據(jù)庫加密有兩種方式:
1)在數(shù)據(jù)庫管理系(Data Base Management System,DBMS)中實(shí)現(xiàn)加密功能,即在從數(shù)據(jù)庫中讀數(shù)據(jù)和向數(shù)據(jù)庫中寫數(shù)據(jù)時(shí)執(zhí)行加解密操作;
2)應(yīng)用層加密,即在應(yīng)用程序中對數(shù)據(jù)庫的某些字段的值進(jìn)行加密,DBMS 管理的是加密后的密文。
前者與DBMS 結(jié)合好,加密方式對用戶透明,但增加了DBMS 的負(fù)載,并且需要修改DBMS的原始代碼;后者則需要應(yīng)用程序在寫入數(shù)據(jù)前加密,在讀出數(shù)據(jù)后解密,因而會增大應(yīng)用程序的負(fù)載。在此,通過實(shí)現(xiàn)SQLite 源碼中預(yù)留的加密接口,實(shí)現(xiàn)DBMS 級的加密。

3.使用xxx-tea 算法加密SQLite 數(shù)據(jù)庫

微型加密算法(TEA)及其相關(guān)變種(XTEA,Block TEA,XXTEA) 都是分組加密算法,它們很容易被描述,實(shí)現(xiàn)也很簡單(典型的幾行代碼)。

TEA 算法最初是由劍橋計(jì)算機(jī)實(shí)驗(yàn)室的 David Wheeler 和 Roger Needham在 1994 年設(shè)計(jì)的。該算法使用 128 位的密鑰為 64 位的信息塊進(jìn)行加密,它需要進(jìn)行 64 輪迭代,盡管作者認(rèn)為 32 輪已經(jīng)足夠了。該算法使用了一個(gè)神秘常數(shù)δ作為倍數(shù),它來源于黃金比率,以保證每一輪加密都不相同。但δ的精確值似乎并不重要,這里 TEA 把它定義為 δ=「(√5 - 1)231」(也就是程序中的 0×9E3779B9)。

之后 TEA 算法被發(fā)現(xiàn)存在缺陷,作為回應(yīng),設(shè)計(jì)者提出了一個(gè) TEA 的升級版本——XTEA(有時(shí)也被稱為“tean”)。XTEA 跟 TEA 使用了相同的簡單運(yùn)算,但它采用了截然不同的順序,為了阻止密鑰表攻擊,四個(gè)子密鑰(在加密過程中,原 128 位的密鑰被拆分為 4 個(gè) 32 位的子密鑰)采用了一種不太正規(guī)的方式進(jìn)行混合,但速度更慢了。

在跟描述 XTEA 算法的同一份報(bào)告中,還介紹了另外一種被稱為 Block TEA 算法的變種,它可以對 32 位大小任意倍數(shù)的變量塊進(jìn)行操作。該算法將 XTEA 輪循函數(shù)依次應(yīng)用于塊中的每個(gè)字,并且將它附加于它的鄰字。該操作重復(fù)多少輪依賴于塊的大小,但至少需要 6 輪。該方法的優(yōu)勢在于它無需操作模式(CBC,OFB,CFB 等),密鑰可直接用于信息。對于長的信息它可能比 XTEA 更有效率。

在 1998 年,Markku-JuhaniSaarinen 給出了一個(gè)可有效攻擊 Block TEA 算法的代碼,但之后很快 David J. Wheeler 和 Roger M.Needham 就給出了 Block TEA 算法的修訂版,這個(gè)算法被稱為 XXTEA。XXTEA 使用跟 Block TEA 相似的結(jié)構(gòu),但在處理塊中每個(gè)字時(shí)利用了相鄰字。它利用一個(gè)更復(fù)雜的 MX 函數(shù)代替了 XTEA 輪循函數(shù),MX 使用 2 個(gè)輸入量。

責(zé)任編輯:閆佳明 來源: iteye
相關(guān)推薦

2011-07-07 16:42:38

iPhone Sqlite3 數(shù)據(jù)庫

2012-03-06 09:50:24

Android SQLAndroidSQLite3

2013-04-09 16:47:19

iOS嵌入式數(shù)據(jù)庫SQLit

2021-02-15 15:40:28

SQLite3數(shù)據(jù)庫

2024-02-19 00:00:00

SQLite3數(shù)據(jù)庫代碼

2012-03-06 12:59:11

iOS SQLite3iOSSQLite3

2020-07-31 08:07:54

Python開發(fā)數(shù)據(jù)庫

2012-02-29 10:18:31

SQLite3Android

2019-08-12 11:40:48

數(shù)據(jù)庫SQLite3數(shù)據(jù)類型

2013-05-03 13:42:20

iOS開發(fā)SQLite3存儲讀取

2011-03-03 13:13:51

DelphiSQLite加密

2011-07-04 18:02:29

QT Sqlite 數(shù)據(jù)庫

2017-10-26 12:37:24

Pythonsqlite3數(shù)據(jù)庫

2012-03-06 10:17:45

iOS SQLite3iOSSQLite3

2017-07-12 09:20:42

SQLite數(shù)據(jù)庫移植

2019-08-15 07:00:54

SQLite數(shù)據(jù)庫內(nèi)存數(shù)據(jù)庫

2011-07-20 12:34:49

SQLite數(shù)據(jù)庫約束

2013-06-14 09:54:04

Unity3D

2020-09-17 09:40:20

數(shù)據(jù)庫Sqlite3命令

2011-08-01 13:32:07

Objective-C Sqlite3 框架
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

麻豆91精品91久久久的内涵| 在线观看日韩视频| 免费在线观看麻豆视频| 自拍偷拍欧美精品| 超碰96在线| 在线成人免费观看| 国产不卡网站| 97福利一区二区| 欧美限制电影| 久久久影院一区二区三区| 精品一区二区三区的国产在线播放 | 99riav一区二区三区| 国产性生交xxxxx免费| 一区二区三区美女| 免费av在线网址| 中文字幕av一区二区| 欧美大片网址| 久久av一区二区三区漫画| 高清国产一区二区| 91在线精品| 欧美白人最猛性xxxxx69交| 欧美日韩破处视频| 国产精品91久久久| 日韩成人精品在线观看| 噜噜噜久久亚洲精品国产品麻豆 | 久久男女视频| av免费中文字幕| 精品久久久久久国产| 欧美bbbxxxxx| 国内精品久久久久影院优 | 免费看日产一区二区三区| 91久久久久久久久久| 狠狠色伊人亚洲综合成人| v888av成人| 欧美jjzz| 制服黑丝国产在线| 欧美va亚洲va香蕉在线| 久久在线观看| 色综合久久六月婷婷中文字幕| jizzjizz中国精品麻豆| 国模私拍视频一区| 野花国产精品入口| 91极品视频在线观看| 欧美日本一区二区| 神马影院我不卡午夜| 91视频你懂的| 欧美一区二区三区| 九九热这里只有精品免费看| 视频一区欧美日韩| www.99av| 亚洲欧美国产视频| 欧美色123| 男女男精品视频站| 亚洲护士老师的毛茸茸最新章节| 色男人天堂综合再现| 午夜免费福利小电影| 在线不卡中文字幕播放| 欧洲亚洲视频| 国产精品裸体瑜伽视频| 日韩三级精品电影久久久| 精品国产91乱码一区二区三区四区| 999久久欧美人妻一区二区| 色视频欧美一区二区三区| 亚洲日本一区二区三区在线| 亚洲精品在线观看免费| 91久久精品午夜一区二区| 美国成人xxx| 国产二级片在线观看| 91精品在线免费观看| 精品久久久久久久久久久aⅴ| 亚洲 自拍 另类小说综合图区| 在线电影欧美成精品| 小处雏高清一区二区三区| 亚洲激情在线观看视频| 亚洲少妇激情视频| 日一区二区三区| 成人综合影院| 成人女保姆的销魂服务| 国产精品色一区二区三区| 欧亚一区二区| 永久免费在线看片视频| 日韩欧美国产wwwww| 国产综合自拍| 伊人75在线| 国产精品黄页免费高清在线观看| 国产午夜精品久久久久久免费视 | 欧美老人xxxx18| 一区二区影院| 色播色播色播色播色播在线 | 国产免费专区| 久久久噜噜噜久噜久久| 99re视频这里只有精品| 午夜激情成人网| 日本xxx免费| 亚洲自拍高清视频网站| 亚洲一区二区成人在线观看| 国产精品无圣光一区二区| 国产一级不卡视频| 欧美巨大另类极品videosbest| 成人毛片免费看| 宅男深夜国产| 91在线视频九色| 亚洲成人综合在线| 美女被久久久| 日韩毛片免费看| av在线三区| 国产成人精品免费视频大全最热 | 色综合咪咪久久网| 黄色网页免费在线观看| 久久精品视频播放| 欧美影视一区二区三区| 亚洲深夜av| 国产一区二区三区亚洲综合| av网址在线免费观看| 羞羞的视频在线观看| 妞干网在线视频观看| 色噜噜色狠狠狠狠狠综合色一| 91精品国产91| 主播福利视频一区| 91丨九色丨国产丨porny| 国产在线播精品第三| 狠狠色综合色综合网络| 美女看a上一区| 国产免费网址| 中文综合在线观看| 九色porny丨国产精品| 国产精品自拍av| 亚洲人体大胆视频| 中国av一区| 国产一区玩具在线观看| 国产区在线观看成人精品| 亚洲不卡系列| 精品91一区二区三区| 亚洲精品99999| 久久狠狠亚洲综合| 蜜桃麻豆影像在线观看| 五月天av影院| 亚洲午夜未删减在线观看| 激情综合网av| 成人自拍av| 国产午夜伦鲁鲁| 久久久久成人精品| 亚洲天堂福利av| 日韩免费看片| 成av人电影在线观看| 欧美精品尤物在线| 日韩黄色高清视频| 成人免费精品视频| 91亚洲无吗| 在线看你懂得| 精品无人区一区二区三区 | 激情婷婷欧美| 超碰在线caoporn| 日韩黄色影视| 亚洲天堂av女优| 国产精品欧美一级免费| 国产不卡一区| 国产高清视频在线观看| 亚洲国产高清国产精品| 色av中文字幕一区| 亚洲另类在线一区| 亚洲网站啪啪| 男人的天堂免费在线视频| 亚洲熟妇无码一区二区三区| 2019中文字幕在线观看| 日韩欧美a级成人黄色| 国产视频一区在线观看一区免费| 中老年在线免费视频| av丝袜天堂网| 91免费视频网站| 日韩av在线免费| 中文字幕免费在线观看视频一区| 仙踪林久久久久久久999| 天堂中文在线播放| 大胆高清日本a视频| 精品国产乱码久久久久久久软件| 在线观看精品自拍私拍| 亚洲国产精品精华液网站| 丝袜美腿成人在线| 美女视频免费精品| 99在线播放| 爱爱永久免费视频| 日本一区美女| 欧美中文在线字幕| 日韩一区二区电影| 中文字幕一区二区三区在线观看| 国产欧美在线| 天堂一区二区三区四区| 亚洲按摩av| 日本视频三区| 免费不卡av在线| 国产精品久久久久久免费观看| 日韩中文字幕免费| 欧美日韩精品三区| 国产精品久久夜| 久久99精品视频| 亚洲视频电影在线| 高潮按摩久久久久久av免费| 成人三级小说| 天堂中文在线资|