对称加密:

原理:使用秘钥和加密算法对数据进行转换,得到的无意义数据即为密文;使用密钥和解密算法对密文进行逆向转换,得到原数据。
经典算法: DES AES
非对称加密
原理:使用公钥对数据进行加密得到密文,使用私钥对数据进行解密得到原数据。

加密密钥----公钥
解密密钥----私钥
延伸用途:数字签名
非对称加密----公钥可以解私钥
椭圆曲线----私钥可以算出公钥
RSA---公钥关键的一部分是一样的(公钥私钥不能交换)
签名与验证:私钥签名,公钥验证

加密+签名


经典算法:RSA,DSA
密码学密钥和登录密码
密钥(key)
场景:用于加密和解密
目的:保证数据被盗使不会被人读懂内容
焦点:数据
登录密码(password)
场景:用户进入网站或游戏前的身份验证
目的:数据提供方或应用服务方对账户拥有数据的保护,保证(你是你)的时候才提供权限
焦点:身份
Base64
将二进制数据转换成由64个字符组成的字符串的编码算法
什么是二进制数据? 1010......
非文本数据就是二进制数据
用途:让原数据具有字符串所具有的特性,如可以放在URL中传输,可以保存到文本文件、可以通过普通的聊天软件进行文本传输。
把原本人眼可以读懂的字符串变成读不懂的字符串,降低偷窥风险。
Base64加密传输图片,可以更安全和高效,真的么?
不是,安全是要加密;也不高效,数据变长,速度变慢。
变种:Base58
URL encoding
将URL中的保留字符使用百分号"%"进行编码
目的:消除歧义,避免解析错误
压缩与解压缩
压缩:把数据换一种方式来存储,以减小存储空间
解压缩:把压缩后的数据还原成原先的形式,以便使用
常见压缩算法:DEFLATE HPEG MP3
压缩属于编码么?
压缩属于编码的一种
媒体数据的编码解码
图片的编码:把图像数据写成JPG、PNG等文件的编码格式
图片的解码:把JPG、PNG等文件中的数据解析成标准的图像数据
音频、视频的编解码
序列化
序列化:把数据对象(一般是内存中,例如JVM中的对象)转换成字节序列的过程
反序列化:把字节序列重新转换成内存中的对象
目的:让内存中的对象可以被存储和传输
序列化是编码么?
序列化就是将很乱的数据有序化,所以称不上编码。
Hash
定义:把任意数据转换成指定大小范围(通常很小)的数据
作用:摘要、数字指纹
经典算法:MD5、SHA1、SHA256等
实际用途:数据完整性验证 、快速查找:hashcode()和HashMap、隐私保护
Hash是编码么?
不是。
Hash不是加密;MD5不是加密。

字符集
含义:一个由整数向现实世界中的文字符号尚未Map
分支:
ASCII:128个字符,1字节
ISO-8859-1:对ASCII进行扩充,1字节
Unicode:13万个字符,多字节
UTF-8:Unicode的编码分支
UTF-16:Unicode的编码分支
GBK/GB2312/GB18030:中国自研标准,多字节,字符集+编码
网友评论