單向散列函數(shù)

  • 單向散列函數(shù)的說明
    1. 單向散列函數(shù)也稱為消息摘要函數(shù), 哈希函數(shù) 或者 雜湊函數(shù)
    2. 單向散列函數(shù)輸出的散列值又稱為消息摘要 或者 指紋
  • 經(jīng)典算法
    單項散列函數(shù)的經(jīng)典算法,包括 : MD4\MD5\SHA1\SHA256\SHA512等
  • 單向散列函數(shù)的特點:
    1. 加密后密文的長度是定長的(即對任意長度的消息三列,得到的散列值是定長的)
    2. 散列計算速度快,非常高效
    3. 如果明文不一樣自阱,那么散列后的結果一定不一樣
    4. 如果明文一樣梯影,那么加密后的密文一定一樣(對相同數(shù)據(jù)加密矾削,加密后的密文一樣)
    5. 所有的加密算法是公開的
    6. 具備單向性,不可以逆推反算
MD5
  • 加密算法說明
    MD5全稱是Message Digest Algorithm 5,譯為"消息摘要算法第5版"是由Rivest 于1991年設計的單項散列函數(shù)

  • MD5的特點
    1)對字符串進行MD5加密可以得到一個32個字符的密文
    對輸入的信息生成唯一的一個128位散列值(32個字符)
    2)加密之后不能根據(jù)密文逆推出明文
    根據(jù)輸出值秽之,不能得到原始的明文吵聪,即其過程不可逆
    明文不同,則散列值一定不同
    明文相同,則散列值一定相同
    3)MD5已經(jīng)被破解(暴力破解|碰撞檢測)
    1)MD5解密網(wǎng)站:http://www.cmd5.com
    2)MD5的強抗碰撞性已經(jīng)被證實攻破捻爷,即對于重要數(shù)據(jù)不應該再繼續(xù)使用MD5加密。

  • 提交隱私數(shù)據(jù)的安全過程 - 注冊

    注冊

  • 提交隱私數(shù)據(jù)的安全過程 - 登錄

    登錄

    結論:用戶的隱私數(shù)據(jù)份企,只有在用戶輸入那一刻是明文也榄,其他情況都是密文處理

  • 消息認證碼

    • 消息認證碼特點
      ①消息的發(fā)送者和接收者有一個共享密鑰
      ②發(fā)送者使用共享密鑰對消息加密計算得到MAC值(消息認證碼)
      ③消息接收者使用共享密鑰對消息加密計算得到MAC值
      ④比較兩個MAC值是否一致
    • 經(jīng)典算法
      ①HMAC-MD5(先用密鑰加密,然后進行兩次散列計算)
      ②HMAC-SHA1
    • 使用
      ①客戶端需要在發(fā)送的時候把(消息)+(消息·HMAC)一起發(fā)送給服務器
      ②服務器接收到數(shù)據(jù)后司志,對拿到的消息用共享的KEY進行HMAC甜紫,比較是否一致降宅,如果一致則信任
      消息認證流程示意圖
  • MD5加密進階
    **注意 : **現(xiàn)在的MD5已不再是絕對安全,對此囚霸,可以對MD5稍作改進钉鸯,以增加解密的難度

  1. 加鹽(Salt):在明文的固定位置插入隨機串,然后再進行MD5加密
    MD5進階的加密方式
  2. 先加密邮辽,后亂序:先對明文進行MD5唠雕,然后對加密得到的MD5串的字符進行亂序
  3. 先亂序,后加密:先對明文字符串進行亂序處理吨述,然后對得到的串進行加密
  4. 先亂序岩睁,再加鹽,再多次MD5加密等
  5. 使用消息認證機制揣云,即HMAC-MD5-先對密鑰進行加密捕儒,加密之后進行兩次MD5散列
    總之宗旨就是:黑客就算攻破了數(shù)據(jù)庫,也無法解密出正確的明文
  6. 終端命令行加密
    MD5加密-字符串 $ echo -n "520it" |md5
    MD5加密-文件1 $ md5 abc.png
    SHA1加密: $ echo -n "520it" |openssl sha -sha1
    SHA256 $ echo -n "520it" |openssl sha -sha256
    SHA512 $ echo -n "520it" |openssl sha -sha512
    hmacMD5加密 $ echo -n "520it" |openssl dgst -md5 -hmac "123"
  • MD5的應用
  1. 加密
  2. 搜索 : 多個關鍵字邓夕,先對每個關鍵字進行散列刘莹,然后多個關鍵字進行或運算,如果值一致則搜索結果一致
  3. 文件完整性驗證 : 對整個文件進行散列焚刚,比較散列值判斷文件是否完整或被篡改
  4. 版權 : 對文件進行散列判斷該文件是否是正版或原版的
  • MD5加密示例代碼
    方式一:直接加密
    NSString * str = @"ZhaoJing";
    NSString * str1 = [str md5String];
    NSLog(@"%@",str1);

方式二:通過加鹽的方式加密

//說明:鹽要足夠的長,足夠的復雜,這樣加密后的安全性更高
    NSString * salt = @"ahfqjhfguyrgflhfvagfliergflaigalgLAGFLAFLiglGLglIGLIgLGLEGLiwgf";
    NSString * str2 = [str stringByAppendingString:salt];
    NSString * str3 = [str2 md5String];
    NSLog(@"%@",str3);

方式三:通過顛倒前后字符的位置(亂序)

    NSString * lastStr = [str substringFromIndex:4];
    NSString * firstStr = [str substringToIndex:4];
    NSString * str4 = [lastStr stringByAppendingString:firstStr];
    NSString * str5 = [str4 md5String];
    NSLog(@"%@",str5);

方式四:消息摘要認證 HAMC-MD5

    //key 是一個秘鑰(服務器發(fā)送過來的隨機數(shù))
    NSString * key = @"love";
    NSString * str6 = [str hmacMD5StringWithKey:key];
    NSLog(@"%@",str6);
  • MD5加密的安全等級
 加密方式           用戶的輸入   發(fā)送給服務器的數(shù)據(jù)(攔截)                               安全風險
 MD5                handsome     21bfcc4c2625469d8ec6f3d710dcb0fe                  低
 MD5_MD5            handsome     SEEFRSFSTSTSTSTSTSTSTSTSTSTSTSTS                  低
 (字符串+salt)_MD5   handsome     6e3a6f5e426e7876215463e0277de4b7     ->handsomeabc   高
 ...                123456    df10ef8509dc176d733d59549e7dbfaf     ->123456abc
 (字符串+亂序)_MD5    handsome     c1e8a4de626d2dd197cbfea2a3171250     ->somehand      很高
                     12345      erwrwrwrtwrdwdwdwdwdwdwdwdwdwdq     ->45123
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末点弯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子矿咕,更是在濱河造成了極大的恐慌抢肛,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碳柱,死亡現(xiàn)場離奇詭異捡絮,居然都是意外死亡,警方通過查閱死者的電腦和手機莲镣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門福稳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瑞侮,你說我怎么就攤上這事的圆。” “怎么了区岗?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵略板,是天一觀的道長。 經(jīng)常有香客問我慈缔,道長,這世上最難降的妖魔是什么种玛? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任藐鹤,我火速辦了婚禮瓤檐,結果婚禮上,老公的妹妹穿的比我還像新娘娱节。我一直安慰自己挠蛉,他們只是感情好,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布肄满。 她就那樣靜靜地躺著谴古,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稠歉。 梳的紋絲不亂的頭發(fā)上掰担,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音怒炸,去河邊找鬼带饱。 笑死,一個胖子當著我的面吹牛阅羹,可吹牛的內(nèi)容都是我干的勺疼。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼捏鱼,長吁一口氣:“原來是場噩夢啊……” “哼执庐!你這毒婦竟也來了?” 一聲冷哼從身側響起导梆,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤耕肩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后问潭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猿诸,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年狡忙,在試婚紗的時候發(fā)現(xiàn)自己被綠了梳虽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡灾茁,死狀恐怖窜觉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情北专,我是刑警寧澤禀挫,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站拓颓,受9級特大地震影響语婴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一砰左、第九天 我趴在偏房一處隱蔽的房頂上張望匿醒。 院中可真熱鬧,春花似錦缠导、人聲如沸廉羔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽憋他。三九已至,卻和暖如春髓削,著一層夾襖步出監(jiān)牢的瞬間竹挡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工蔬螟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留此迅,地道東北人。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓旧巾,卻偏偏與公主長得像耸序,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鲁猩,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

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