密码学
- 不可以用于文字内容,还可以用于各种二进制数据。
- 对称加密
- 原理:使用密钥和加密算法对数据进行转换,得到无意义的数据即为密文,即为加密;使用密钥和解密算法对密文进行逆向转换,即为解密。
- 算法:DES,AES
- 原理:使用密钥和加密算法对数据进行转换,得到无意义的数据即为密文,即为加密;使用密钥和解密算法对密文进行逆向转换,即为解密。
- 非对称加密
- 原理:使用公钥对数据进行加密,使用私钥对数据进行解密。
- 算法:RSA,DSA
- 签名
- 使用私钥对数据进行签名,使用公钥进行验证。
- 使用私钥对数据进行签名,使用公钥进行验证。
- 签名+加密
Base64
- 将二进制数据转换成由64个字符串的编码算法。
- Base64转化的数据并不是加密的。
- 每次转化都会增加数据。
- 变种Base58
压缩与解压缩
- 压缩:把数据换一种方式进行储存,以减少空间。
- 解压缩:把压缩的数据还原,以便使用。
- 常见压缩算法:DEFLATE,JPEG,MP3.
序列化
- 把数据对象(一般是内存中的,例如jvm中的对象)转化成字节序列的过程。
- 反序列化:把字节顺序重新转化成内存中的对象。
- 目的:让内存中的对象可以被存储和传输。
Hash
- 定义:把任意数据转换成指定大小范围的数据。
- 作用:摘要,数字指纹。
- 经典算法:MD5,SHA1,SHA256等。
- 实际用途:
- 数据完整性验证。
- 快速查找:hashcode()和hashMap。
- 隐私保护。