iOS MD5加密(16位和32位)

簡介
MD5加密是最常用的不可逆加密方法之一企蹭,是將字符串通過相應(yīng)特征生成一段32位的數(shù)字字母混合碼白筹。對輸入信息生成唯一的128位散列值(32個16進(jìn)制的數(shù)字)

加密約定

加密結(jié)果位數(shù): 加密結(jié)果位數(shù)是16位還是32位(大多數(shù)都是32位的)。
加密結(jié)果大小寫: MD5加密區(qū)分 大小寫谅摄,使用時要和后臺約定好徒河。
聲明和實現(xiàn): (NSString的類別)

// 32位 (較為常用)

  • (NSString *)md5HashToLower32Bit;
  • (NSString *)md5HashToUpper32Bit;

// 16位

  • (NSString *)md5HashToLower16Bit;
  • (NSString *)md5HashToUpper16Bit;

pragma mark - 32位 小寫

  • (NSString *)md5HashToLower32Bit {
    const char *input = [self UTF8String];
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    CC_MD5(input, (CC_LONG)strlen(input), result);

    NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    for (NSInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
    [digest appendFormat:@"%02x", result[i]];
    }

    return digest;
    }

pragma mark - 32位 大寫

  • (NSString *)md5HashToUpper32Bit {
    const char *input = [self UTF8String];
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    CC_MD5(input, (CC_LONG)strlen(input), result);

    NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    for (NSInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
    [digest appendFormat:@"%02X", result[i]];
    }

    return digest;
    }

pragma mark - 16位 小寫

  • (NSString *)md5HashToLower16Bit {
    NSString *md5Str = [self md5HashToLower32Bit];

    NSString *string;
    for (int i=0; i<24; i++) {
    string=[md5Str substringWithRange:NSMakeRange(8, 16)];
    }

    return string;
    }

pragma mark - 16位 大寫

  • (NSString *)md5HashToUpper16Bit {
    NSString *md5Str = [self md5HashToUpper32Bit];

    NSString *string;
    for (int i=0; i<24; i++) {
    string=[md5Str substringWithRange:NSMakeRange(8, 16)];
    }

    return string;
    }

加鹽: 即就是添加"佐料", 如果用戶密碼數(shù)據(jù)庫不小心被泄露, 黑客就可以通過反查詢方式獲得用戶密碼或者對于數(shù)據(jù)庫中出現(xiàn)頻率較高的hash碼(即很多人使用的)進(jìn)行暴力破解(因為它通常都是弱口令)
鹽值就是在密碼hash過程中添加的額外的隨機(jī)值, 來提高加密算法, 加Salt可以一定程度上解決這一問題。所謂加Salt方法送漠,就是加點“佐料”顽照。其基本想法是這樣的:當(dāng)用戶首次提供密碼時(通常是注冊時),由系統(tǒng)自動往這個密碼里撒一些“佐料”闽寡,然后再散列代兵。而當(dāng)用戶登錄時,系統(tǒng)為用戶提供的代碼撒上同樣的“佐料”爷狈,然后散列植影,再比較散列值,已確定密碼是否正確涎永。
這里的“佐料”被稱作“Salt值”思币,這個值是由系統(tǒng)隨機(jī)生成的鹿响,并且只有系統(tǒng)知道。這樣谷饿,即便兩個用戶使用了同一個密碼惶我,由于系統(tǒng)為它們生成的salt值不同,他們的散列值也是不同的博投。即便黑客可以通過自己的密碼和自己生成的散列值來找具有特定密碼的用戶绸贡,但這個幾率太小了(密碼和salt值都得和黑客使用的一樣才行)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贬堵,一起剝皮案震驚了整個濱河市恃轩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌黎做,老刑警劉巖叉跛,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蒸殿,居然都是意外死亡筷厘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門宏所,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酥艳,“玉大人,你說我怎么就攤上這事爬骤〕涫” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵霞玄,是天一觀的道長骤铃。 經(jīng)常有香客問我,道長坷剧,這世上最難降的妖魔是什么惰爬? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮惫企,結(jié)果婚禮上撕瞧,老公的妹妹穿的比我還像新娘。我一直安慰自己狞尔,他們只是感情好丛版,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著偏序,像睡著了一般页畦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上禽车,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天寇漫,我揣著相機(jī)與錄音刊殉,去河邊找鬼。 笑死州胳,一個胖子當(dāng)著我的面吹牛记焊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播栓撞,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼遍膜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瓤湘?” 一聲冷哼從身側(cè)響起瓢颅,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弛说,沒想到半個月后挽懦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡木人,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年信柿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片醒第。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡渔嚷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出稠曼,到底是詐尸還是另有隱情形病,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布霞幅,位于F島的核電站漠吻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蝗岖。R本人自食惡果不足惜侥猩,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一榔至、第九天 我趴在偏房一處隱蔽的房頂上張望抵赢。 院中可真熱鬧,春花似錦唧取、人聲如沸铅鲤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邢享。三九已至,卻和暖如春淡诗,著一層夾襖步出監(jiān)牢的瞬間骇塘,已是汗流浹背伊履。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留款违,地道東北人唐瀑。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像插爹,于是被迫代替她去往敵國和親哄辣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

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