iOS常見信息加密方式總結

目錄
  • MD5加密
  • HMAC加密
  • base64加密
  • 對稱加密
  • RSA加密 - 非對稱加密
一.MD5加密

MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數(shù)字字母混合碼赏半。

MD5主要特點是 不可逆妨退,相同數(shù)據(jù)的MD5值肯定一樣蔓涧,不同數(shù)據(jù)的MD5值不一樣(也不是絕對的,但基本是不能一樣的)。

MD5算法還具有以下性質:
1呻畸、壓縮性:任意長度的數(shù)據(jù)碟贾,算出的MD5值長度都是固定的币喧。
2、容易計算:從原數(shù)據(jù)計算出MD5值很容易袱耽。
3杀餐、抗修改性:對原數(shù)據(jù)進行任何改動,哪怕只修改1個字節(jié)朱巨,所得到的MD5值都有很大區(qū)別史翘。
4、弱抗碰撞:已知原數(shù)據(jù)和其MD5值冀续,想找到一個具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的恶座。
5、強抗碰撞:想找到兩個不同的數(shù)據(jù)沥阳,使它們具有相同的MD5值跨琳,是非常困難的。

MD5雖然說是不可逆的 但是由于有網(wǎng)站http://www.cmd5.com的存在桐罕,專門用來查詢MD5碼 所以有的簡單的MD5碼是可以在這里搜到源碼的脉让。

為了讓MD5碼更加安全 涌現(xiàn)了很多其他方法 如加鹽。 鹽要足夠長足夠亂 得到的MD5碼就很難查到功炮。

終端代碼:

$ echo -n abc|openssl md5          

給字符串a(chǎn)bc加密

二.HMAC加密

此加密方法需要先生成密鑰溅潜,然后再對密碼進行MD5和HMAC加密,數(shù)據(jù)庫中需要存放當時使用的密鑰和密碼加密后的密文

在用戶登陸時 再次對填入的密碼用密鑰進行加密 并且還要加上當前時間(精確到分鐘) 再次HMAC加密薪伏,服務器里也會拿出以前存放的密文加上時間再次加密滚澜。所以就算黑客在中途截取了密碼的密文 也在能在1分鐘只能破譯才能有效,大大加強了安全性嫁怀。服務器為了考慮到網(wǎng)絡的延遲一般會多算一種答案设捐,如23分過來的密碼 他會把23分和22分的都算一下和用戶匹配只要對上一個就允許登陸。

如圖 用戶注冊與用戶登錄

HAMC-1.png
HMAC-2.png
三.base64加密

在MIME格式的電子郵件中塘淑,base64可以用來將binary的字節(jié)序列數(shù)據(jù)編碼成ASCII字符序列構成的文本萝招。使用時,在傳輸編碼方式中指 定base64存捺。使用的字符包括大小寫字母各26個槐沼,加上10個數(shù)字,和加號“+”,斜杠“/”岗钩,一共64個字符纽窟,等號“=”用來作為后綴用途。

完整的base64定義可見RFC 1421和RFC 2045兼吓。編碼后的數(shù)據(jù)比原始數(shù)據(jù)略長臂港,為原來的4/3。

原理圖

base64.png

終端指令
先cd 找到當前目錄

加密: $ base64 abc.png -o abc.txt
解密: $ base64 abc.txt -o 123.png -D
四.對稱加密算法

優(yōu)點:算法公開周蹭、計算量小、加密速度快疲恢、加密效率高凶朗、可逆
缺點:雙方使用相同鑰匙,安全性得不到保證
現(xiàn)狀:對稱加密的速度比公鑰加密快很多显拳,在很多場合都需要對稱加密棚愤,

相較于DES和3DES算法而言,AES算法有著更高的速度和資源使用效率杂数,安全級別也較之更高了宛畦,被稱為下一代加密標準

nECB :電子代碼本,就是說每個塊都是獨立加密的
nCBC :密碼塊鏈揍移,使用一個密鑰和一個初始化向量 (IV)對數(shù)據(jù)執(zhí)行加密轉換

ECB和CBC區(qū)別:CBC更加復雜更加安全次和,里面加入了8位的向量(8個0的話結果等于ECB)。在明文里面改一個字母那伐,ECB密文對應的那一行會改變踏施,CBC密文從那一行往后都會改變。

ECB終端命令:

$ openssl enc -des-ecb -K 616263 -nosalt -in msg1.txt -out msg1.bin

CBC終端命令:

$ openssl enc -des-cbc -K 616263 -iv 0000000000000000 -nosalt -in msg1.txt -out msg2.bin
五.RSA加密 - 非對稱加密算法

非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)

公開密鑰與私有密鑰是一對罕邀,如果用公開密鑰對數(shù)據(jù)進行加密畅形,只有用對應的私有密鑰才能解密;如果用私有密鑰對數(shù)據(jù)進行加密诉探,那么只有用對應的公開密鑰才能解密

特點:

  • 非對稱密碼體制的特點:算法強度復雜日熬、安全性依賴于算法與密鑰但是由于其算法復雜,而使得加密解密速度沒有對稱加密解密的速度快
  • 對稱密碼體制中只有一種密鑰肾胯,并且是非公開的竖席,如果要解密就得讓對方知道密鑰。所以保證其安全性就是保證密鑰的安全敬肚,而非對稱密鑰體制有兩種密鑰怕敬,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了

基本加密原理:
1帘皿、找出兩個“很大”的質數(shù):P & Q
2东跪、N = P * Q
3、M = (P – 1) * (Q – 1)
4、找出整數(shù)E虽填,E與M互質丁恭,即除了1之外,沒有其他公約數(shù)
5斋日、找出整數(shù)D牲览,使得E*D除以M余1,即 (E * D) % M = 1

經(jīng)過上述準備工作之后恶守,可以得到:

  • E是公鑰第献,負責加密
  • D是私鑰,負責解密
  • N負責公鑰和私鑰之間的聯(lián)系
  • 加密算法兔港,假定對X進行加密 (X ^ E) % N = Y
  • n根據(jù)費爾馬小定義庸毫,根據(jù)以下公式可以完成解密操作 (Y ^ D) % N = X

但是RSA加密算法效率較差,對大型數(shù)據(jù)加密時間很長衫樊,一般用于小數(shù)據(jù)飒赃。

常用場景:

  • 分部要給總部發(fā)一段報文,先對報文整個進行MD5得到一個報文摘要科侈,再對這個報文摘要用公鑰加密载佳。然后把報文和這個RSA密文一起發(fā)過去。
  • 總部接收到報文之后要先確定報文是否在中途被人篡改臀栈,就先把這個密文用私鑰解密得到報文摘要蔫慧,再和整個報文MD5一下得到的報文摘要進行對比 如果一樣就是沒被改過。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末权薯,一起剝皮案震驚了整個濱河市藕漱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌崭闲,老刑警劉巖肋联,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異刁俭,居然都是意外死亡橄仍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門牍戚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侮繁,“玉大人,你說我怎么就攤上這事如孝∠芰ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵第晰,是天一觀的道長锁孟。 經(jīng)常有香客問我彬祖,道長,這世上最難降的妖魔是什么品抽? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任储笑,我火速辦了婚禮,結果婚禮上圆恤,老公的妹妹穿的比我還像新娘突倍。我一直安慰自己,他們只是感情好盆昙,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布羽历。 她就那樣靜靜地躺著,像睡著了一般淡喜。 火紅的嫁衣襯著肌膚如雪秕磷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天拆火,我揣著相機與錄音跳夭,去河邊找鬼涂圆。 笑死们镜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的润歉。 我是一名探鬼主播模狭,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼踩衩!你這毒婦竟也來了嚼鹉?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤躬厌,失蹤者是張志新(化名)和其女友劉穎除师,沒想到半個月后宽涌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡线脚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了叫榕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浑侥。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖晰绎,靈堂內(nèi)的尸體忽然破棺而出寓落,到底是詐尸還是另有隱情,我是刑警寧澤荞下,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布伶选,位于F島的核電站史飞,受9級特大地震影響,放射性物質發(fā)生泄漏考蕾。R本人自食惡果不足惜祸憋,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肖卧。 院中可真熱鬧蚯窥,春花似錦、人聲如沸塞帐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葵姥。三九已至荷鼠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榔幸,已是汗流浹背允乐。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留削咆,地道東北人牍疏。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像拨齐,于是被迫代替她去往敵國和親鳞陨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

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

  • 這篇文章主要講述在Mobile BI(移動商務智能)開發(fā)過程中瞻惋,在網(wǎng)絡通信厦滤、數(shù)據(jù)存儲、登錄驗證這幾個方面涉及的加密...
    雨_樹閱讀 2,331評論 0 6
  • 之前的項目中接觸過一些加密的方法歼狼,也沒有太仔細的進行記錄和研究掏导。最近在寫SDK時,加密模塊的占比相當之大羽峰;借此時機...
    過半_e764閱讀 561評論 0 0
  • 一 .MD5加密 MD5加密是最常用的加密方法之一趟咆,是從一段字符串中通過相應特征生成一段32位的數(shù)字字母混合碼。 ...
    深度碼農(nóng)患者閱讀 396評論 0 8
  • 今天看《魔力創(chuàng)業(yè)》限寞,關于如何快速創(chuàng)業(yè)忍啸,收獲如下 3點 1、創(chuàng)業(yè)你擁有一些最基本的技能就可以了履植,只需要你知道前進的方...
    lee左閱讀 327評論 0 0
  • 1.單詞——文檔矩陣 單詞-文檔矩陣是表達兩者之間所具有的一種包含關系的概念模型计雌,圖3-1展示了其含義。圖3-1的...
    Bigbang_boy閱讀 493評論 0 0