iOS常見的幾種加密


了解名詞:

消息摘要:

消息摘要采用單向Hash 函數(shù)將需加密的明文"摘要"成一串128bit的密文,這一串密文亦稱為數(shù)字指紋(Finger Print)腮猖,它有固定的長度,且不同的明文摘要成密文赞枕,其結(jié)果總是不同的澈缺,而同樣的明文其摘要必定一致坪创。

摘要算法:

摘要算法是指可以將任意長度的文本,通過一個算法姐赡,得到一個固定長度的文本莱预。這里文本不一定只是文本,可以是字節(jié)數(shù)據(jù)项滑。所以摘要算法可以將很長的內(nèi)容變成一個固定長度的東西依沮。

數(shù)字簽名:

數(shù)字簽名就是非對稱加密和摘要算法兩者結(jié)合。現(xiàn)在假設我們需要傳輸好幾個參數(shù)枪狂,如何確定接口中所傳輸?shù)膮?shù)值是否被篡改過危喉?這時候數(shù)字簽名就可以解決這個問題了

CA證書:

通過數(shù)字簽名實現(xiàn)的數(shù)字化的證書。在一般的證書組成部分中還加入了其他的信息州疾,比如證書有效期辜限,公司組織名稱等,過了有效期需要重新簽發(fā)严蓖。

公鑰/私鑰:

對于一個私鑰薄嫡,有且只有一個與之對應的公鑰。公鑰公開給任何人颗胡,私鑰通常是只有生成者擁有毫深。公/私鑰通常是1024位或者2048位,越長安全系數(shù)越高毒姨,但是解密越困難哑蔫。盡管拿到了公鑰,如果沒有私鑰手素,要想解密那幾乎是不可能的鸳址,至少現(xiàn)在在世界上還沒有人公開出來說成功解密的瘩蚪。非對稱加密算法如此強大可靠泉懦,卻有一個弊端,就是加解密比較耗時疹瘦。

常見的幾種加密

DES加密:

DES加密算法是一種分組密碼崩哩,以64位為分組對數(shù)據(jù)加密,它的密鑰長度是56位言沐,加密解密用同一算法邓嘹。DES加密算法是對密鑰進行保密,而公開算法险胰,包括加密和解密算法汹押。這樣,只有掌握了和發(fā)送方相同密鑰的人才能解讀由DES加密算法加密的密文數(shù)據(jù)起便。因此棚贾,破譯DES加密算法實際上就是搜索密鑰的編碼窖维。對于56位長度的密鑰來說,如果用窮舉法來進行搜索的話妙痹,其運算次數(shù)為256铸史。?

AES加密算法:

AES加密算法是密碼學中的高級加密標準,該加密算法采用對稱分組密碼體制怯伊,密鑰長度的最少支持為128琳轿、192、256耿芹,分組長度128位蛋哭,算法應易于 各種硬件和軟件實現(xiàn)。這種加密算法是美國聯(lián)邦政府采用的區(qū)塊加密標準移怯,這個標準用來替代原先的DES兆蕉,已經(jīng)被多方分析且廣為全世界所使用

RSA加密算法:

RSA加密算法是目前最有影響力的公鑰加密算 法,并且被普遍認為是目前最優(yōu)秀的公鑰方案之一寇甸。RSA是第一個能同時用于加密和數(shù)宇簽名的算法塘偎,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推 薦為公鑰數(shù)據(jù)加密標準拿霉。RSA加密算法基于一個十分簡單的數(shù)論事實:將兩個大素數(shù)相乘十分容易吟秩,但想要對其乘積進行因式分解卻極其困難, 因此可以將乘積公開作為加密密鑰绽淘。

Base64加密算法:

Base64加密算法是網(wǎng)絡上最常見的用于傳輸8bit字節(jié)代碼的編碼方式之一涵防,Base64編碼可用于在HTTP環(huán)境下傳遞較長的標識信息。例如沪铭,在 JAVAPERSISTENCE系統(tǒng)HIBEMATE中壮池,采用了Base64來將一個較長的唯一標識符編碼為一個字符串,用作HTTP表單和 HTTPGETURL中的參數(shù)杀怠。在其他應用程序中椰憋,也常常需要把二進制數(shù)據(jù)編碼為適合放在URL(包括隱藏表單域)中的形式。此時赔退,采用Base64編碼 不僅比較簡短橙依,同時也具有不可讀性,即所編碼的數(shù)據(jù)不會被人用肉眼所直接看到?

MD5加密算法:

MD5為計算機安全領域廣泛使用的一種散列函數(shù)硕旗,用以提供消息的完整性保護窗骑。對MD5加密算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組漆枚,經(jīng)過了一系列的處理后创译,算法的輸出由四個32位分組組成,將這四個32位分組級聯(lián)后將生成—個128位散列值墙基。

MD5被廣泛用于各種軟件的密碼認證和鑰匙識別上软族。MD5用的是哈希函數(shù)辛藻,它的典型應用是對一段信息產(chǎn)生信息摘要,以防止被篡改互订。MD5的典型應用是對一 段Message產(chǎn)生fingerprin指紋吱肌,以防止被“篡改”。如果再有—個第三方的認證機構(gòu)仰禽,用MD5還可以防止文件作者的“抵賴”氮墨,這就是所謂的數(shù)字簽名應用。MD5還廣泛用于操作系統(tǒng)的登陸認證上吐葵,如UNIX规揪、各類BSD系統(tǒng)登錄密碼、數(shù)字簽名等諸多方温峭。

MD5算法主要用在用戶注冊口令的加密猛铅,對于普通強度的口令加密,可以通過以下三種方式進行破解:

(1)在線查詢密碼凤藏。一些在線的MD5值查詢網(wǎng)站提供MD5密碼值的查詢奸忽,輸入MD5密碼值后,如果在數(shù)據(jù)庫中存在揖庄,那么可以很快獲取其密碼值栗菜。

(2)使用MD5破解工具。網(wǎng)絡上有許多針對MD5破解的專用軟件蹄梢,通過設置字典來進行破解疙筹。

(3)通過社會工程學來獲取或者重新設置用戶的口令。

因此簡單的MD5加密是沒有辦法達到絕對的安全的禁炒,因為普通的MD5加密有多種暴力破解方式而咆,因此如果想要保證信息系統(tǒng)或者網(wǎng)站的安全,需要對MD5進行改造幕袱,增強其安全性.

SHA1加密算法:

SHA1是和MD5一樣流行的消息摘要算法暴备。SHA加密算法模仿MD4加密算法。SHA1設計為和數(shù)字簽名算法(DSA)一起使用凹蜂。

SHA1主要適用于數(shù)字簽名標準里面定義的數(shù)字簽名算法馍驯。對于長度小于2“64位的消息,SHA1會產(chǎn)生一個160位的消息摘要玛痊。當接收到消息的時候,這 個消息摘要可以用來驗證數(shù)據(jù)的完整性狂打。在傳輸?shù)倪^程中擂煞,數(shù)據(jù)很可能會發(fā)生變化,那么這時候就會產(chǎn)生不同的消息摘要趴乡。SHA1不可以從消息摘要中復原信息对省, 而兩個不同的消息不會產(chǎn)生同樣的消息摘要蝗拿。這樣,SHA1就可以驗證數(shù)據(jù)的完整性蒿涎,所以說SHA1是為了保證文件完整性的技術(shù)哀托。

SHA1加密算法可以采用不超過264位的數(shù)據(jù)輸入,并產(chǎn)生一個160位的摘要劳秋。輸入被劃分為512位的塊仓手,并單獨處理。160位緩沖器用來保存散列函數(shù) 的中間和最后結(jié)果玻淑。緩沖器可以由5個32位寄存器(A嗽冒、B、C补履、D和E)來表示添坊。SHA1是一種比MD5的安全性強的算法,理論上箫锤,凡是采取“消息摘要” 方式的數(shù)字驗證算法都是有“碰撞”的——也就是兩個不同的東西算出的消息摘要相同贬蛙,互通作弊圖就是如此。但是安全性高的算法要找到指定數(shù)據(jù)的“碰撞”很困 難谚攒,而利用公式來計算“碰撞”就更困難一目前為止通用安全算法中僅有MD5被破解速客。

附:https://gitee.com/xslspring/encrypt.git(iOS常見的加解密代碼鏈接)

轉(zhuǎn)自鏈接:https://blog.csdn.net/woaifen3344/article/details/50330439

轉(zhuǎn)自鏈接:https://blog.csdn.net/qq_31946323/article/details/79241488

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市五鲫,隨后出現(xiàn)的幾起案子溺职,更是在濱河造成了極大的恐慌,老刑警劉巖位喂,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浪耘,死亡現(xiàn)場離奇詭異,居然都是意外死亡塑崖,警方通過查閱死者的電腦和手機七冲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來规婆,“玉大人澜躺,你說我怎么就攤上這事∈阊粒” “怎么了掘鄙?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嗡髓。 經(jīng)常有香客問我操漠,道長,這世上最難降的妖魔是什么饿这? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任浊伙,我火速辦了婚禮撞秋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嚣鄙。我一直安慰自己吻贿,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布哑子。 她就那樣靜靜地躺著舅列,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赵抢。 梳的紋絲不亂的頭發(fā)上剧蹂,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音烦却,去河邊找鬼宠叼。 笑死,一個胖子當著我的面吹牛其爵,可吹牛的內(nèi)容都是我干的冒冬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼摩渺,長吁一口氣:“原來是場噩夢啊……” “哼简烤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起摇幻,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤横侦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绰姻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體枉侧,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年狂芋,在試婚紗的時候發(fā)現(xiàn)自己被綠了榨馁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡帜矾,死狀恐怖翼虫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情屡萤,我是刑警寧澤珍剑,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站灭衷,受9級特大地震影響次慢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜翔曲,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一迫像、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瞳遍,春花似錦闻妓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至猾蒂,卻和暖如春均唉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肚菠。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工舔箭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蚊逢。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓层扶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親烙荷。 傳聞我的和親對象是個殘疾皇子镜会,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

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

  • 這里先簡單介紹單向散列函數(shù)、消息摘要和哈希碰撞的的概念 單向散列函數(shù): 將任意長度的信息轉(zhuǎn)換為較短的固定長度的值终抽,...
    坤_7a1e閱讀 3,479評論 0 0
  • 本文中所有代碼演示均有GitHub源碼戳表,點擊下載 普通加密方法是講密碼進行加密后保存到用戶偏好設置中 鑰匙串是以明...
    si1ence閱讀 39,898評論 20 198
  • 1、base64加密base64 編碼是現(xiàn)代密碼學的基礎基本原理:原本是 8個bit 一組表示數(shù)據(jù),改為 6個bi...
    MenaceiOS閱讀 462評論 0 0
  • 這篇文章主要講述在Mobile BI(移動商務智能)開發(fā)過程中昼伴,在網(wǎng)絡通信匾旭、數(shù)據(jù)存儲、登錄驗證這幾個方面涉及的加密...
    雨_樹閱讀 2,351評論 0 6
  • 我上初中那會兒村里還沒有過往的汽車亩码,水泥路也是后兩年才修上的季率,水泥路上過得最多的不是人,而是拉風的摩托車(嘉陵摩...
    書瑾悅閱讀 183評論 0 0