加密算法分類
1.對稱性加密
對稱性加密算法,信息接收雙方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是對數(shù)據(jù)進(jìn)行 加解密了。
2.非對稱性加密算法
- 非對稱算法與之不同,發(fā)送雙方A,B事先均生成一堆密匙,然后A將自己的公有密匙發(fā)送給B,B將自己的公有密匙發(fā)送給A,
- 如果A要給B發(fā)送消息,則先需要用B的公有密匙進(jìn)行消息加密,然后發(fā)送給B端,此時B端再用自己的私有密匙進(jìn)行消息解密,B向A發(fā)送消息時為同樣的道理??偠灾汗€與私鑰的作用是:用公鑰加密的內(nèi)容只能用私鑰解密,用私鑰加密的內(nèi)容只能 用公鑰解密。
加密方案
Base64
Base64編碼可用于在HTTP環(huán)境下傳遞較長的標(biāo)識信息。安全原則:
凡是涉及到私密信息的發(fā)送,都不能夠發(fā)送明文,需要加密之后再發(fā)送.
原理
base64: 將原來 8個 bit 為一個字節(jié)的數(shù)據(jù) 6個 bit 為一個單位處理. 導(dǎo)致 數(shù)據(jù)量會增大,增大 (8-6)/6 = 1/3.不足的部分用 0 補齊.每兩個0 就用一個 = 表示.
特點
采用Base64編碼不僅比較簡短,同時也具有不可讀性,即所編碼的數(shù)據(jù)不會被人用肉眼所直接看到。
base64 可以對任意的文件進(jìn)行加密.
base64 過程是可逆的. 可以反向解密.
MD5
md5 (信息-摘要算法) .散列運算. ------> 生成固定的字符串.
一般用作——文件檢驗!
特點
算法是公開的,過程是不可逆的.
任何不同的兩個文件,生成的結(jié)果是不同的,字符串的長度是相同的.
加固方案
MD5解密網(wǎng)站:http://www.cmd5.com使用加鹽(通過MD5解密之后,很容易發(fā)現(xiàn)規(guī)律)
多次MD5加密(使用MD5解密之后,發(fā)現(xiàn)還是密文,那就接著MD5解密)
先加密,后亂序(破解難度增加)
RSA基本原理
RSA使用"秘匙對"對數(shù)據(jù)進(jìn)行加密解密.在加密解密數(shù)據(jù)前,需要先生成公鑰(public key)和私鑰(private key).
- 公鑰(public key): 用于加密數(shù)據(jù). 用于公開, 一般存放在數(shù)據(jù)提供方, 例如iOS客戶端.
- 私鑰(private key): 用于解密數(shù)據(jù). 必須保密, 私鑰泄露會造成安全問題.
動態(tài)密碼
動態(tài)密碼: 相同的密碼明文,每次發(fā)送到服務(wù)器,密碼都不同.可以理解為先將普通密碼加密再加上一段會變化的數(shù)據(jù)(比如時間)再進(jìn)行一次加密。
Token 身份令牌
概念:數(shù)字簽名和數(shù)字證書
- 數(shù)字簽名:
將報文按雙方約定的HASH算法計算得到一個固定位數(shù)的報文摘要。在數(shù)學(xué)上保證:只要改動報文中任何一位,重新計算出的報文摘要值就會與原先的值不相符。這樣就保證了報文的不可更改性。 將該報文摘要值用發(fā)送者的私人密鑰加密,然后連同原報文一起發(fā)送給接收者,而產(chǎn)生的報文即稱數(shù)字簽名。- 數(shù)字證書
數(shù)字證就是互聯(lián)網(wǎng)通訊中標(biāo)志通訊各方身份信息的一系列數(shù)據(jù),提供了一種在Internet上驗證您身份的方式,其作用類似于司機(jī)的駕駛執(zhí)照或日常生活中的身份證。它是由一個由權(quán)威機(jī)構(gòu)-----CA機(jī)構(gòu),又稱為證書授權(quán)(Certificate Authority)中心發(fā)行的,人們可以在網(wǎng)上用它來識別對方的身份。數(shù)字證書是一個經(jīng)證書授權(quán)中心數(shù)字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。最簡單的證書包含一個公開密鑰、名稱以及證書授權(quán)中心的數(shù)字簽名。