密碼學:基礎篇

網絡開發(fā)原則

  1. 在網絡上不允許傳輸用戶的明文隱私數(shù)據
  1. 在本地不允許保存用戶的明文隱私數(shù)據

分類

基于密鑰的算法,按照密鑰的特點分為以下三種:

1. 哈希(散列)函數(shù)
  • MD5
  • SHA1
  • SHA256/512
2. 對稱加密算法 - 傳統(tǒng)加密算法
  • DES - 數(shù)據加密標準(用的比較少,因為強度不夠).
  • 3DES - 使用3個密鑰,對相同的數(shù)據執(zhí)行三次加密,強度增強.
  • AES - 高級加密標準,目前美國國家安全局使用AES加密,蘋果的鑰匙串訪問就是使用
3. 非對稱加密算法 - 現(xiàn)代加密算法
  • RSA
  • 公鑰\私鑰
  • 用公鑰加密,私鑰解密
  • 用私鑰加密,公鑰解密

哈希(散列)函數(shù)

特點:

  1. 算法公開的.
  2. 對相同的數(shù)據加密,得到的結果是一樣的.
  3. 對不同的數(shù)據加密,得到的結果是定長的,MD5對不同的數(shù)據進行加密,得到的結果都是32個字符.
  4. 信息摘要,信息"指紋",是用來做數(shù)據識別的.
  5. 不能反算的.

MD5 加密

用途:
  • 密碼 - 服務器是不需要知道用戶的真實密碼的!在用戶注冊的時候服務器就對密碼進行了加密處理,然后保存在數(shù)據庫!
  • 搜索 - 百度關鍵詞搜索
  • 版權 - 不同的數(shù)據 MD5 之后差別是非常大的!!
基本安全:
  1. 加"鹽" - 早期使用!因為后期修改“鹽”數(shù)據,成本比較大,牽扯到老用戶可能不更新App,就會損失大部分用戶。另一方面,程序員掌握“鹽”,如果對“鹽”數(shù)據做出修改,則會造成災難性損失。
  2. HMAC - 近一兩年,在國內開始使用增多! 給定一個密鑰,對明文進行密鑰拼接,并且做"兩次散列" -> 得到32位結果!

HMAC :

- 用戶在注冊的那一刻,向服務器索取 密鑰(key)!!
- 客戶端拿到KEY的這一刻,就將KEY保存在本地!!
- 切換了新的設備(換手機登錄,登錄新的已有賬號!) -- 重新找服務器獲取!!

密碼具有時效性

//如何避免
一種情況! 如果黑客 模擬你的網絡請求..不需要拿到真實密碼!用加密后的信息,也可以獲得登錄之后的權限!!
//讓我們的密碼具有時效性!! 也就是 加密過后的密碼 有時間限制!!

客戶端:
    UserID = hank
    Pass == (123456+KEY)HMAC == e9cdab82d48dcd37af7734b6617357e6
    KEY
發(fā)送:UserID :  (Pass + '201702102020')md5

服務器:
    KEY
    UserID = hank
    密碼 = Pass == e9cdab82d48dcd37af7734b6617357e6


對比: 只要服務器當前時間或者上一分鐘 加密后的字符相等!就返回登錄成功!!
    (Pass + '201702102020')md5 != (Pass + '201702102021')md5
    (Pass + '201702102020')md5 == (Pass + '201702102020')md5

鑰匙串訪問

1. 蘋果的"生態(tài)圈",從 iOS7.0.3 版本開放給開發(fā)者!
2. 功能:在Mac上能夠動態(tài)生成復雜密碼,幫助用戶記住密碼!
3. 如果用戶訪問網站,記住密碼,我們還可以看到記住的密碼明文!明文記錄
4. 本身的所有接口都是 C 語言的.借助三方庫
5. 采用的加密方式是 AES 加密!
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 本文主要介紹移動端的加解密算法的分類、其優(yōu)缺點特性及應用,幫助讀者由淺入深地了解和選擇加解密算法。文中會包含算法的...
    蘋果粉閱讀 11,676評論 5 29
  • 2018-Read-Record 記錄我的2018學習歷程 文中首先解釋了加密解密的一些基礎知識和概念,然后通過一...
    NinthDay閱讀 11,450評論 8 105
  • 文中首先解釋了加密解密的一些基礎知識和概念,然后通過一個加密通信過程的例子說明了加密算法的作用,以及數(shù)字證書的出現(xiàn)...
    sunny沖哥閱讀 1,508評論 0 3
  • 文中首先解釋了加密解密的一些基礎知識和概念,然后通過一個加密通信過程的例子說明了加密算法的作用,以及數(shù)字證書的出現(xiàn)...
    已認證用戶閱讀 3,986評論 1 4
  • 1 互聯(lián)網的發(fā)展縮短了人的距離,交流和溝通變得便捷,尤其微信等是即時通訊工具的出現(xiàn),大大降低了溝通成本,提高了溝通...
    葉無息閱讀 1,141評論 0 50

友情鏈接更多精彩內容