密碼

任何應(yīng)用的開發(fā)中安全都是重中之重四濒,在信息交互異郴豢觯活躍的現(xiàn)在,信息加密技術(shù)顯得尤為重要盗蟆。在app應(yīng)用開發(fā)中戈二,我們需要對應(yīng)用中的多項(xiàng)數(shù)據(jù)進(jìn)行加密處理,從而來保證應(yīng)用上線后的安全性喳资,給用戶一個(gè)安全保障觉吭。
本節(jié)只講原理和應(yīng)用,下面介紹常用三種加密仆邓。

一鲜滩、哈希HASH

1.MD5加密

MD5加密的特點(diǎn):

  1. 不可逆運(yùn)算
  2. 對不同的數(shù)據(jù)加密的結(jié)果是定長的32位字符(不管文件多大都一樣)
  3. 對相同的數(shù)據(jù)加密,得到的結(jié)果是一樣的(也就是復(fù)制)宏赘。
  4. 抗修改性 : 信息“指紋”绒北,對原數(shù)據(jù)進(jìn)行任何改動(dòng),哪怕只修改一個(gè)字節(jié),所得到的 MD5 值都有很大區(qū)別.
  5. 弱抗碰撞 : 已知原數(shù)據(jù)和其 MD5 值,想找到一個(gè)具有相同 MD5 值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的.
  6. 強(qiáng)抗碰撞: 想找到兩個(gè)不同數(shù)據(jù),使他們具有相同的 MD5 值,是非常困難的

MD5 應(yīng)用:

一致性驗(yàn)證:MD5將整個(gè)文件當(dāng)做一個(gè)大文本信息,通過不可逆的字符串變換算法察署,產(chǎn)生一個(gè)唯一的MD5信息摘要闷游,就像每個(gè)人都有自己獨(dú)一無二的指紋,MD5對任何文件產(chǎn)生一個(gè)獨(dú)一無二的數(shù)字指紋。

那么問題來了,你覺得這個(gè)MD5加密安全嗎脐往?其實(shí)是不安全的休吠,不信的話可以到這個(gè)網(wǎng)站試試:md5破解網(wǎng)站∫挡荆可以說嗖地一下就破解了你的MD5加密A鼋浮!梅尤!

2.加“鹽”

可以加個(gè)“鹽”試試柜思,“鹽”就是一串比較復(fù)雜的字符串。加鹽的目的是加強(qiáng)加密的復(fù)雜度巷燥,這么破解起來就更加麻煩赡盘,當(dāng)然這個(gè)“鹽”越長越復(fù)雜,加密后破解起來就越麻煩缰揪,不信加鹽后然后MD5加密陨享,再去到md5破解網(wǎng)站破解試試看,他就沒轍了6巯佟E坠谩!

哈哈艳狐,這下應(yīng)該安全了吧定硝!答案是否定的。如果這個(gè)“鹽”泄漏出去了僵驰,不還是完?duì)僮訂崤缯M瑢W(xué)會問唁毒,“鹽”怎么能泄漏出去呢蒜茴?其實(shí)是會泄漏出去的。比如蘋果端浆西、安卓端粉私、前端、后臺等等那些個(gè)技術(shù)人員不都知道嗎近零。诺核。都有可能泄漏出去。又有同學(xué)說那就放在服務(wù)器吧久信,放在服務(wù)器更加不安全窖杀,直接抓包就抓到了!H故俊入客!

加固定的“鹽”還是有太多不安全的因素,可以看出沒有百分百的安全,只能達(dá)到相對安全(破解成本 > 破解利潤)桌硫,所以一些金融的app夭咬、網(wǎng)站等加密比較高。

下面來介紹另外兩種加密方案

3.SHA加密

安全哈希算法(Secure Hash Algorithm)主要適用于數(shù)字簽名標(biāo)準(zhǔn)(Digital Signature Standard DSS)里面定義的數(shù)字簽名算法(Digital Signature Algorithm DSA)铆隘。對于長度小于2^64位的消息卓舵,SHA1會產(chǎn)生一個(gè)160位的消息摘要。當(dāng)接收到消息的時(shí)候膀钠,這個(gè)消息摘要可以用來驗(yàn)證數(shù)據(jù)的完整性掏湾。在傳輸?shù)倪^程中,數(shù)據(jù)很可能會發(fā)生變化肿嘲,那么這時(shí)候就會產(chǎn)生不同的消息摘要忘巧。當(dāng)讓除了SHA1還有SHA256以及SHA512等。

SHA1有如下特性:不可以從消息摘要中復(fù)原信息睦刃;兩個(gè)不同的消息不會產(chǎn)生同樣的消息摘要砚嘴。

4.HMAC加密

HMAC:給定一個(gè)密鑰,對明文加密涩拙,做兩次“散列”际长,得到的結(jié)果還是32為字符串。在實(shí)際開發(fā)中兴泥,密鑰是服務(wù)器生成工育,客戶端發(fā)送請求會拿到KEY。一個(gè)賬號對應(yīng)一個(gè)KEY

以注冊為例:當(dāng)用戶把賬號提交給服務(wù)器搓彻,服務(wù)器會驗(yàn)證賬號的合法性如绸,如果合法就會生成個(gè)KEY給客戶端(這個(gè)KEY只有在注冊的時(shí)候會出現(xiàn)一次,一個(gè)賬號只對應(yīng)一個(gè)KEY)旭贬;客戶端會用拿到的KEY給密碼用HMAC方式加密(32位字符串)發(fā)給服務(wù)器怔接,最終服務(wù)器會保存這個(gè)HMAC密碼。這樣就注冊成功了稀轨!以后再登錄就會服務(wù)器就會比對這個(gè)HMAC密碼是否相等決定能否登錄成功扼脐。

這里寫圖片描述

這樣一來好像安全了很多哎!即使黑客拿到了客戶KEY奋刽,也只能拿到一個(gè)用戶的信息瓦侮,也就是說只丟失了一個(gè)客戶的信息。然而上面的加“鹽”方式加密佣谐,如果“鹽”泄漏了肚吏,那丟失的可是所有用戶信息啊。安全性有了很大提升有木有O粱辍7E省吁断!

二、對稱加密

簡介:
對稱加密算法又稱傳統(tǒng)加密算法坞生。
加密和解密使用同一個(gè)密鑰仔役。

加密解密過程:明文->密鑰加密->密文,密文->密鑰解密->明文是己。

示例:
密鑰:X
加密算法:每個(gè)字符+X
明文:Hello
密鑰為 1時(shí)加密結(jié)果:Ifmmp
密鑰為 2時(shí)加密結(jié)果:Jgnnq

優(yōu)缺點(diǎn):
算法公開又兵,計(jì)算量小,加密速度快卒废,加密效率高
雙方使用相同的鑰匙沛厨,安全性得不到保證

注意事項(xiàng):
密鑰的保密工作非常重要
密鑰要求定期更換

經(jīng)典加密算法有三種:
1. DES(Data Encryption Standard):數(shù)據(jù)加密標(biāo)準(zhǔn)(現(xiàn)在用的比較少,因?yàn)樗募用軓?qiáng)度不夠摔认,能夠暴力破解)
2. 3DES:原理和DES幾乎是一樣的逆皮,只是使用3個(gè)密鑰,對相同的數(shù)據(jù)執(zhí)行三次加密参袱,增強(qiáng)加密強(qiáng)度电谣。(缺點(diǎn):要維護(hù)3個(gè)密鑰,大大增加了維護(hù)成本)
3. AES(Advanced Encryption Standard):高級加密標(biāo)準(zhǔn)抹蚀,目前美國國家安全局使用的剿牺,蘋果的鑰匙串訪問采用的就AES加密。是現(xiàn)在公認(rèn)的最安全的加密方式环壤,是對稱密鑰加密中最流行的算法晒来。
只要是對稱加密都有 ECB和 CBC模式,加密模式是加密過程對獨(dú)立數(shù)據(jù)塊的處理郑现。對于較長的明文進(jìn)行加密需要進(jìn)行分塊加密湃崩,在實(shí)際開發(fā)中,推薦使用CBC的接箫,ECB的要少用攒读。

三、非對稱加密RSA

簡介:
1. 對稱加密算法又稱現(xiàn)代加密算法列牺。
2. 非對稱加密是計(jì)算機(jī)通信安全的基石整陌,保證了加密數(shù)據(jù)不會被破解。
3. 非對稱加密算法需要兩個(gè)密鑰:公開密鑰(publickey) 和私有密(privatekey)
4. 公開密鑰和私有密鑰是一對

如果用公開密鑰對數(shù)據(jù)進(jìn)行加密瞎领,只有用對應(yīng)的私有密鑰才能解密。
如果用私有密鑰對數(shù)據(jù)進(jìn)行加密随夸,只有用對應(yīng)的公開密鑰才能解密九默。

特點(diǎn):
算法強(qiáng)度復(fù)雜,安全性依賴于算法與密鑰宾毒。
加密解密速度慢驼修。

與對稱加密算法的對比:
對稱加密只有一種密鑰,并且是非公開的,如果要解密就得讓對方知道密鑰乙各。
非對稱加密有兩種密鑰墨礁,其中一個(gè)是公開的。

RSA應(yīng)用場景:
由于RSA算法的加密解密速度要比對稱算法速度慢很多耳峦,在實(shí)際應(yīng)用中恩静,通常采取
數(shù)據(jù)本身的加密和解密使用對稱加密算法(AES)。
用RSA算法加密并傳輸對稱算法所需的密鑰蹲坷。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末驶乾,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子循签,更是在濱河造成了極大的恐慌级乐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件县匠,死亡現(xiàn)場離奇詭異风科,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)乞旦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門丐重,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人杆查,你說我怎么就攤上這事扮惦。” “怎么了亲桦?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵崖蜜,是天一觀的道長。 經(jīng)常有香客問我客峭,道長豫领,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任舔琅,我火速辦了婚禮等恐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘备蚓。我一直安慰自己课蔬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布郊尝。 她就那樣靜靜地躺著二跋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪流昏。 梳的紋絲不亂的頭發(fā)上扎即,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天吞获,我揣著相機(jī)與錄音,去河邊找鬼谚鄙。 笑死各拷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的闷营。 我是一名探鬼主播烤黍,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼粮坞!你這毒婦竟也來了蚊荣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤莫杈,失蹤者是張志新(化名)和其女友劉穎互例,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筝闹,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡媳叨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了关顷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糊秆。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖议双,靈堂內(nèi)的尸體忽然破棺而出痘番,到底是詐尸還是另有隱情,我是刑警寧澤平痰,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布汞舱,位于F島的核電站,受9級特大地震影響宗雇,放射性物質(zhì)發(fā)生泄漏昂芜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一赔蒲、第九天 我趴在偏房一處隱蔽的房頂上張望泌神。 院中可真熱鬧,春花似錦舞虱、人聲如沸欢际。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幼苛。三九已至,卻和暖如春焕刮,著一層夾襖步出監(jiān)牢的瞬間舶沿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工配并, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留括荡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓溉旋,卻偏偏與公主長得像畸冲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子观腊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348