一、编码/解码
- 编码是信息从一种形式或格式转换为另一种形式的过程。
- UTF-8(用以解决国际上字符的一种多字节编码)
GBK (简体中文)
CP935(与 1880 UDC 混合的简体中文主机,5031 的超集)
BASE64(基于64个可打印字符来表示二进制数据) - 长度:变长
- 状态:可逆
- 用途:易于展示
二、数字摘要
- 数字摘要是一个唯一对应一个消息或文本的固定长度的值,由一个单项Hash加密函数对消息进行作用而产生。
- MD5,SHA256
- 长度:固定
- 状态:不可逆
- 用途:防篡改
三、加密/解密
- 加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码传送,到达目的地后再用相同或不用的手段还原。
- DES、3DES、AES、RSA、国密
- 长度:变长
- 状态:可逆
- 用途:防泄密
- 其它:非对称算法、公钥加密、私钥解密
四、加签/验签
- 在数字摘要的基础上根据密钥对进行更深层次的安全防护。
- RSA(RSA算法是第一个能同时用于加密和数字签名的算法)
- 长度:固定
- 状态:不可逆
- 用途:防纂改
- 其它:非对称算法、私钥加签、公钥验签
五、 脱敏/还原
- 指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。
- 用途:敏感信息保护
六、 其它说明
AES加密:
AES算法自带盐值(salt),在相同源数据且相同密码条件下,加密出的密文数据结果不尽相同。数字摘要与加签/验签
后者相比前者更加安全。数字摘要在一定条件下可根据字典进行穷举从而暴力破解,而加签/验签则需要秘钥做支持。RSA加签
RSA加签对源数据大小有限制,为保证一定满足一般在加签之前先进行计算数字摘要。
JAVA提供的标准算法支持例如SHA256withRSA的加签算法,可以直接使用,亦可先自行使用数字摘要算法生成摘要后,再调用RSA算法进行加签操作