iOS數(shù)據(jù)加密

相關(guān)文章:數(shù)字證書原理

SSL/TLS協(xié)議運行機制的概述

一、常用的加密算法

1埃仪、對稱加密

對稱加密的意思就是,加密數(shù)據(jù)用的密鑰陕赃,跟解密數(shù)據(jù)用的密鑰是一樣的卵蛉。<qq style="color:red">對稱加密的優(yōu)點在于加密、解密效率通常比較高</qq>么库。
常用加密算法有DES,3DES,AES等.

DES  數(shù)據(jù)加密標(biāo)準(zhǔn)(用的比較少,因為強度不夠).
3DES 使用3個密鑰,對相同的數(shù)據(jù)執(zhí)行三次加密,強度增強.
AES  高級加密標(biāo)準(zhǔn),目前美國國家安全局使用AES加密,蘋果的鑰匙串訪問就是使用AES加密傻丝。

而對稱加密的模式最為常見的是兩種:ECB,CBC

ECB:<qq style="color:gray">加密文件會被分為若干個加密塊,每個塊都是獨立進行加密诉儒,互不影響葡缰。所以,如果變動數(shù)據(jù)中的某一個地方,加密之后其對應(yīng)得塊也會發(fā)生變化泛释,缺點是一旦被破解某個模塊滤愕,就可以進行推理,進而有機會獲取到重要數(shù)據(jù)胁澳。</qq><p>
CBC:<qq style="color:gray">使用一個密鑰和一個初始化向量 (IV)對數(shù)據(jù)執(zhí)行加密轉(zhuǎn)換该互。加密文件同樣會被分為若干個加密塊,每個塊都依賴于上一個加密塊進行加密韭畸,互相牽制宇智。所以,如果變動數(shù)據(jù)中的某一個地方胰丁,加密之后整體數(shù)據(jù)都會發(fā)生變化随橘。可以有效地保證密文的完整性</qq>

2锦庸、非對稱加密

與對稱加密算法不同机蔗,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey);并且加密密鑰和解密密鑰是成對出現(xiàn)的甘萧。<qq style="color:red">通過公鑰加密的數(shù)據(jù)萝嘁,只能通過私鑰解開。通過私鑰加密的數(shù)據(jù)扬卷,只能通過公鑰解開</qq>牙言。常見的非對稱加密算法有RSA(加密,證書生成),DSA(數(shù)字簽名)
第三方代碼

非對稱加密算法對加密內(nèi)容的長度有限制怪得,不能超過公鑰長度咱枉。比如現(xiàn)在常用的公鑰長度是 2048 位,意味著待加密內(nèi)容不能超過 256 個字節(jié)徒恋。

3蚕断、HASH加密

Hash算法特別的地方在于它是一種單向算法,用戶可以通過Hash算法對目標(biāo)信息生成一段特定長度(32個字符)的唯一的Hash值入挣,卻不能通過這個Hash值重新獲得目標(biāo)信息亿乳。對用相同數(shù)據(jù),加密之后的密文相同径筏。
常見的Hash算法有MD5和SHA风皿。

    //md5 處理
    class func md5(_ string:String) -> String {
        let str = string.cString(using: String.Encoding.utf8)
        let digestLen = Int(CC_MD5_DIGEST_LENGTH)
        let strLen = CUnsignedLongLong(string.lengthOfBytes(using: String.Encoding.utf8))
        let result = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: digestLen)
        CC_MD5(str!, CC_LONG(strLen), result)
        let hash = NSMutableString()
        for i in 0 ..< digestLen {
            hash.appendFormat("%02X", result[i])
        }
        result.deinitialize()
        
        return String(format: hash as String)
    }

二、HTTPS原理

HTTPS是HTTP的安全版,HTTPS的安全基礎(chǔ)是SSL/TLS匠璧。<qq style="color:red">Https的作用:內(nèi)容加密桐款,身份認(rèn)證 ,數(shù)據(jù)完整性 </qq>

https通信過程

對稱秘鑰用公鑰進行加密夷恍,服務(wù)端用私鑰解密魔眨。


1媳维、摘要算法

數(shù)字摘要是采用單項Hash函數(shù)將需要加密的明文“摘要”成一串固定長度(128位)的密文,這一串密文又稱為數(shù)字指紋遏暴,它有固定的長度侄刽,而且不同的明文摘要成密文,其結(jié)果總是不同的朋凉,而同樣的明文其摘要必定一致州丹。“數(shù)字摘要“是https能確保數(shù)據(jù)完整性和防篡改的根本原因杂彭。

2墓毒、數(shù)字簽名

將摘要信息用發(fā)送者的私鑰加密,與原文一起傳送給接收者亲怠。接收者只有用發(fā)送者的公鑰才能解密被加密的摘要信息所计,然后用HASH函數(shù)對收到的原文產(chǎn)生一個摘要信息,與解密的摘要信息對比团秽。如果相同主胧,則說明收到的信息是完整的,在傳輸過程中沒有被修改习勤,否則說明信息被修改過.

數(shù)字簽名只能驗證數(shù)據(jù)的完整性踪栋,數(shù)據(jù)本身是否加密不屬于數(shù)字簽名的控制范圍

3、數(shù)字證書

由一個權(quán)威的值得信賴的第三方機構(gòu)(一般是由政府審核并授權(quán)的機構(gòu))來統(tǒng)一對外發(fā)放主機機構(gòu)的公鑰图毕。<p>
證書包含了頒發(fā)證書的機構(gòu)的名字 -- CA

證書的有效期

證書內(nèi)容本身的數(shù)字簽名(用CA私鑰加密,證書頒發(fā)機構(gòu)的)

證書持有者的公鑰

證書簽名用到的hash算法

證書驗證:

1夷都、Company在證書頒發(fā)機構(gòu)"SecureTrust CA"申請到這個證書后,我們把證書投入使用吴旋,我們在通信過程開始時會把證書發(fā)給對方损肛。

2厢破、在操作系統(tǒng)中受信任的發(fā)布機構(gòu)的證書中去找"SecureTrust CA"的證書荣瑟,找不到證明證書可能有問題,找到的話摩泪,就用證書發(fā)布機構(gòu)的根證書(一般是在操作系統(tǒng)中的)中的公鑰笆焰,去驗證證書的數(shù)字簽名,確定證書的合法完整性见坑。

3嚷掠、然后就可以放心的使用證書的這個公鑰進行通信了。

4荞驴、SSL/TLS

SSL協(xié)議在握手階段使用的是非對稱加密不皆,在傳輸階段使用的是對稱加密。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末熊楼,一起剝皮案震驚了整個濱河市霹娄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖犬耻,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踩晶,死亡現(xiàn)場離奇詭異,居然都是意外死亡枕磁,警方通過查閱死者的電腦和手機渡蜻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來计济,“玉大人茸苇,你說我怎么就攤上這事∏椭洌” “怎么了税弃?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凑队。 經(jīng)常有香客問我则果,道長,這世上最難降的妖魔是什么漩氨? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任西壮,我火速辦了婚禮,結(jié)果婚禮上叫惊,老公的妹妹穿的比我還像新娘款青。我一直安慰自己,他們只是感情好霍狰,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布抡草。 她就那樣靜靜地躺著,像睡著了一般蔗坯。 火紅的嫁衣襯著肌膚如雪康震。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天宾濒,我揣著相機與錄音腿短,去河邊找鬼。 笑死绘梦,一個胖子當(dāng)著我的面吹牛橘忱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卸奉,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼钝诚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了榄棵?” 一聲冷哼從身側(cè)響起凝颇,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤郎嫁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后祈噪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泽铛,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年辑鲤,在試婚紗的時候發(fā)現(xiàn)自己被綠了盔腔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡月褥,死狀恐怖弛随,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宁赤,我是刑警寧澤舀透,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站决左,受9級特大地震影響愕够,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜佛猛,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一惑芭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧继找,春花似錦遂跟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至边臼,卻和暖如春哄尔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背硼瓣。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工究飞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留置谦,地道東北人堂鲤。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像媒峡,于是被迫代替她去往敵國和親瘟栖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容