密碼學

原則:
1、不允許在網絡上傳遞明文的用戶隱私信息
2、在本地不允許明文的保存用戶隱私信息

起初應用於軍事領域,然後凱撒大帝,後面密碼本加密
a-c,b-e,c-zz 持續到了上世紀50年代

RSA(三個人名)

  • 加密算法公開
  • 公鑰加密,私鑰解密
  • 公鑰解密嗎,私鑰加密
    key:其實就是一個數字,只能通過公示分解破解 (破解的話需要50年左右)

AF

哈希(散列)函數

MD5
SHA1
SHA256

對稱加密算法

DES
3DES
AES(高級密碼標準,美國國家安全局使用的) iOS操作系統內部使用的 破解需要幾千萬年

散列函數特點

  • 算法公開
  • 對相同的數據加密,得到的結果是一樣的
  • 對不同的數據加密,得到的結果是定長的,32位字符(a-z 0-9)
  • 信息摘要,信息“指紋”,是用來做識別的
  • 不能反算

用途

  • 密碼,服務器其實也不知道用戶的真實密碼
  • 搜索
  • 版權

破解

  • 目前破解的散列只有MD5,SHA1也在邊緣
  • 散列碰撞,不同的數據,使用MD5之後能夠得到相同的散列結果無數種
  • 張小云

MD5的基礎安全

1、加“鹽”-- 早期解決方案, 足夠長/複雜的字符串
缺點:鹽是固定的,寫死在程序裏面的

2、HMAC -- 近幾年在國內開始增多
給定一個密鑰!對明文進行加密,並且做了“兩次散列”。32位字符
密鑰一般從服務器獲取

服務器
a、賬號、密鑰、加密後的密碼
b、(加密之後的密碼+“201701112205”).MD5 時間限制

HMAC客戶端登錄思路
a、用戶輸入賬號、密碼
b、本地查找密鑰:如果沒有密鑰,向服務器獲取(賬號對應的密鑰)

本地:
賬號:NSUserDefault
密碼:鑰匙串訪問keyChain

參數:
1、密碼明文
2、forService服務:就是APP的唯一標識,一般使用BoundID或加密後的BoundID
3、賬號

1、蘋果的“原生態圈”,從iOS7.0.3版本,開放給開發者
2、鑰匙串加密方式就是AES加密,可以將保存的密碼以明文的方式反算給你
3、蘋果原生的接口都是C語言,但有三方庫,很方便

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章