6.3.1 哈希

對于給定的數據塊, 密碼哈希與摘要會生成固定大小的位序列。 這些哈希值可以簡化數據塊的比較與排序凉逛。 哈希的常見使用場景包括追蹤文件變更、下載校驗和群井、數據混淆以進行數據庫存儲状飞, 以及驗證請求數據的完整性等。

iOS CommonCrypto 庫提供了對 MD5书斜、SHA-1诬辈、SHA-256 摘要以及其他不太常用的加密算法的支持

NSString Hashing

便捷方法 md5、shal 與 sha256 都會調用 hashWithTYpe:. 雖然 CommonCrypto 庫提供了一些預定義的哈希枚舉荐吉, 應用可以直接使用焙糟, 不過這些枚舉都沒有定義在摘要計算的上下文中。 相對于依賴未來可能會發(fā)生變化的枚舉样屠, 應用使用自定義的值可以限制支持的摘要算法穿撮, 這也是額外的好處


加密實現

hashWithType: 實現中唯一不太直接的地方就是最后一步,最后一步會循環(huán)摘要計算的字節(jié)輸出痪欲, 然后將其轉換為十六進制悦穿, 即可讀的輸出。 完成好核心的哈希邏輯并將其放到一個方法中后业踢, 實現每個便捷方法就只需要一行代碼即可栗柒, 如下


實現

這種方式的額外好處就是可以輕松擴展以支持更多的摘要計算。 下面調用每個便捷方法并顯示相應的輸出 (美國國家標準協(xié)會(NIST)提供了測試向量來驗證摘要計算的輸出知举, 地址 http://www.nsrl.nist.gov/testdata/):

打印加密字符

在服務層生成哈希值的過程是類似的瞬沦, 因為 PHP 支持上面代碼中實現的每一種摘要算法, 此外還支持一些這里沒有列出的算法雇锡。 生成哈希值的標準函數是 .hash(), 它接收持執(zhí)行的算法以及算法所需要的值逛钻。 此外, PHP 還提供了一些便捷函數來生 MD5 與 SHA1 哈希值锰提。?

php 哈希

上述示例展示了如何生成字符串對象的哈希值曙痘, 不過也可以很輕松地生成 NSData 對象的哈希值, 方式是在 NSData 上創(chuàng)建一個類似的類別欲账。 然而屡江, 如果有更為復雜需求或是想在 iOS 應用中比較哈希值, 可以考慮創(chuàng)建自定義類赛不, 從而優(yōu)化初始化并通過重寫 isEqualTo: 來簡化哈希值的比較惩嘉。 不過, 使用哈希算法可以檢測到內容的變化踢故, 同時消息認證碼與密鑰是配對的文黎, 并且更加安全

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末惹苗,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子耸峭,更是在濱河造成了極大的恐慌桩蓉,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件劳闹,死亡現場離奇詭異院究,居然都是意外死亡,警方通過查閱死者的電腦和手機本涕,發(fā)現死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門业汰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人菩颖,你說我怎么就攤上這事样漆。” “怎么了晦闰?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵放祟,是天一觀的道長。 經常有香客問我呻右,道長跪妥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任窿冯,我火速辦了婚禮骗奖,結果婚禮上,老公的妹妹穿的比我還像新娘醒串。我一直安慰自己,他們只是感情好鄙皇,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布芜赌。 她就那樣靜靜地躺著,像睡著了一般伴逸。 火紅的嫁衣襯著肌膚如雪缠沈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天错蝴,我揣著相機與錄音洲愤,去河邊找鬼。 笑死顷锰,一個胖子當著我的面吹牛柬赐,可吹牛的內容都是我干的。 我是一名探鬼主播官紫,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肛宋,長吁一口氣:“原來是場噩夢啊……” “哼州藕!你這毒婦竟也來了?” 一聲冷哼從身側響起酝陈,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤床玻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沉帮,有當地人在樹林里發(fā)現了一具尸體锈死,經...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年穆壕,在試婚紗的時候發(fā)現自己被綠了馅精。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡粱檀,死狀恐怖洲敢,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情茄蚯,我是刑警寧澤压彭,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站渗常,受9級特大地震影響壮不,放射性物質發(fā)生泄漏。R本人自食惡果不足惜皱碘,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一询一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧癌椿,春花似錦健蕊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至都办,卻和暖如春嫡锌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背琳钉。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工势木, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歌懒。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓啦桌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親歼培。 傳聞我的和親對象是個殘疾皇子震蒋,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容