一、編碼/解碼
- 編碼是信息從一種形式或格式轉(zhuǎn)換為另一種形式的過程。
- UTF-8(用以解決國(guó)際上字符的一種多字節(jié)編碼)
GBK (簡(jiǎn)體中文)
CP935(與 1880 UDC 混合的簡(jiǎn)體中文主機(jī),5031 的超集)
BASE64(基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)) - 長(zhǎng)度:變長(zhǎng)
- 狀態(tài):可逆
- 用途:易于展示
二、數(shù)字摘要
- 數(shù)字摘要是一個(gè)唯一對(duì)應(yīng)一個(gè)消息或文本的固定長(zhǎng)度的值,由一個(gè)單項(xiàng)Hash加密函數(shù)對(duì)消息進(jìn)行作用而產(chǎn)生。
- MD5,SHA256
- 長(zhǎng)度:固定
- 狀態(tài):不可逆
- 用途:防篡改
三、加密/解密
- 加密技術(shù)是最常用的安全保密手段,利用技術(shù)手段把重要的數(shù)據(jù)變?yōu)閬y碼傳送,到達(dá)目的地后再用相同或不用的手段還原。
- DES、3DES、AES、RSA、國(guó)密
- 長(zhǎng)度:變長(zhǎng)
- 狀態(tài):可逆
- 用途:防泄密
- 其它:非對(duì)稱算法、公鑰加密、私鑰解密
四、加簽/驗(yàn)簽
- 在數(shù)字摘要的基礎(chǔ)上根據(jù)密鑰對(duì)進(jìn)行更深層次的安全防護(hù)。
- RSA(RSA算法是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法)
- 長(zhǎng)度:固定
- 狀態(tài):不可逆
- 用途:防纂改
- 其它:非對(duì)稱算法、私鑰加簽、公鑰驗(yàn)簽
五、 脫敏/還原
- 指對(duì)某些敏感信息通過脫敏規(guī)則進(jìn)行數(shù)據(jù)的變形,實(shí)現(xiàn)敏感隱私數(shù)據(jù)的可靠保護(hù)。
- 用途:敏感信息保護(hù)
六、 其它說明
AES加密:
AES算法自帶鹽值(salt),在相同源數(shù)據(jù)且相同密碼條件下,加密出的密文數(shù)據(jù)結(jié)果不盡相同。數(shù)字摘要與加簽/驗(yàn)簽
后者相比前者更加安全。數(shù)字摘要在一定條件下可根據(jù)字典進(jìn)行窮舉從而暴力破解,而加簽/驗(yàn)簽則需要秘鑰做支持。RSA加簽
RSA加簽對(duì)源數(shù)據(jù)大小有限制,為保證一定滿足一般在加簽之前先進(jìn)行計(jì)算數(shù)字摘要。
JAVA提供的標(biāo)準(zhǔn)算法支持例如SHA256withRSA的加簽算法,可以直接使用,亦可先自行使用數(shù)字摘要算法生成摘要后,再調(diào)用RSA算法進(jìn)行加簽操作