加密算法隨筆(ios)

加密算法隨筆(ios)

一、加密原則:

1、不能在網(wǎng)絡(luò)傳輸過程中明文傳輸

2、本地保存用戶信息不能明文保存

二、加密算法

? 1、RSA? 非對稱加密:私鑰加密,公鑰解密

? ? 秘鑰是個Key:就是一個數(shù)字,需要通過因式分解來破解

? ? 現(xiàn)在的計算機(jī)破解需要50年

? 2、哈希函數(shù)? 散列函數(shù)

? ? - MD5

? ? - SHA1

? ? - SHA256/512

? 3、對稱加密

? ? - DES

? ? - 3DES

? ? - AES(高級密碼標(biāo)準(zhǔn),美國國家安全局使用的,iOS內(nèi)部使用的也是這個),理論破解時間1萬年(哈哈哈)

4、MD5:

特點:

? ? - 算法公開

? ? - 對相同的數(shù)據(jù)加密,得到的結(jié)果是一樣的

? ? - 對不同的數(shù)據(jù)加密,得到的結(jié)果是定長的(32位字符:a-z 0-9)

? ? - 信息摘要,信息指紋

? ? - 不可逆算

? 破解:

? ? - 散列碰撞(按照一定規(guī)律去比較。規(guī)律需要研究)

? 例子(c語言的):

? ? uint8_t bugger(CC_MD5_DIGEST_LENGTH) // 開辟空間

? ? CC_MD5(str, (CC_LONG)strlen(str), btffer) // 加密

? ? md5Str = [str stringFromBytes:bugger length:CC_MD5_DIGEST_LENGTH] // 獲取


三、網(wǎng)絡(luò)傳輸過程中加密:

目前只靠MD5不夠安全,解決方案

1、再拼接一段字符串key

? ? static? NSString *salt = @"fdjsfeiurdshfjnxvjncxjvnxcjkvnjdkfngdngjndfgndfkjgndfkjgndf" // (足夠長)

? ? pwd = password + salt // 拼接

? ? pwd = pwd.md5 // 加密

? ? 缺點:是寫死在程序里的,容易泄露,根據(jù)版本迭代,還不能改

2、HMAC加密算法(基于MD5的)目前一兩年在國內(nèi)開始增多

? 給定一個秘鑰key(一般從服務(wù)器獲取的隨機(jī)數(shù)(獲取一次),開發(fā)人員是無法知道的)

? (明文+key)進(jìn)行HMAC加密

? 登錄思路:

? 1、用戶輸入賬號密碼

? 2、本地查找是否存在key,如果沒有key,向服務(wù)器獲?。òl(fā)給服務(wù)器一個賬號,賬號和key是綁定的),這時候服務(wù)器會判斷是否需要進(jìn)行一些判斷(設(shè)備鎖什么的)

? 3、獲取key之后再加密

? 4、登陸

? 以上缺點都是 被抓包后,就沒辦法了

3、加上時間:HMAC加密后的密碼再拼接一個字符串(201712141620)時間,然后再md5

? 時間精確到分,服務(wù)器判斷有效期只有1分鐘,防抓包

四、本地加密(例如保存密碼):

鑰匙串保存密碼

? - 蘋果ios7.0.3開放給開發(fā)者的

? - 鑰匙串使用的加密算法是AES算法

? - 蘋果原生是C語言,不過有三方庫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這篇文章主要講述在Mobile BI(移動商務(wù)智能)開發(fā)過程中,在網(wǎng)絡(luò)通信、數(shù)據(jù)存儲、登錄驗證這幾個方面涉及的加密...
    雨_樹閱讀 3,052評論 0 6
  • 本文主要介紹移動端的加解密算法的分類、其優(yōu)缺點特性及應(yīng)用,幫助讀者由淺入深地了解和選擇加解密算法。文中會包含算法的...
    蘋果粉閱讀 11,694評論 5 29
  • 1.類型成員 1)數(shù)據(jù)成員:描述對象的狀態(tài)-屬性@property:外部狀態(tài) 表達(dá)實例的狀態(tài) 對外的接口問:編譯器...
    羊妞麻麻閱讀 599評論 0 0
  • 1 我是一個殺手,我的槍法在業(yè)內(nèi)沒有第二也有第三,所以我的業(yè)績就很好也就很有錢。我之所以做殺手有兩個原因。一是為了...
    花猴閱讀 537評論 0 4
  • 1. 分布式系統(tǒng) 分布式系統(tǒng)的痛點在任何時間點, 如何判定那些服務(wù)器是存活的(alive) 和正在進(jìn)行處理動作(o...
    滬上最強(qiáng)亞巴頓閱讀 1,525評論 0 4

友情鏈接更多精彩內(nèi)容