编码、加密、Hash算法
现代密码学
不止可以用于文字内容,还可以用于各种二进制数据;
对称加密
原理:使用密钥和加密算法对数据进行转换,得到的无意义的数据即为密文;使用密钥和解密算法对密文进行逆向转换,得到原数据;
经典算法:DES(密钥过短,已经被淘汰)、AES
非对称加密
原理:使用公钥对数据进行加密得到密文,使用私钥对密文进行解密得到原文;
公钥可以解密私钥加密的密文;
经典算法:RSA、DSA(用来设计签名)
密码学密钥和登录密码
密钥(key)
场景:用于加密和解密;(关键字:加密和解密) 目的:保证数据被盗时不会被人读懂内容;焦点:数据;
登录密码(password)
场景:用户进入网站或游戏前的身份认证;(关键字:身份认证) 目的:数据提供方或应用服务方对账户拥有者数据的保护,保证[你是你]的时候才提供权限;焦点:身份;
Base64
将二进制数据转换成由 64 个字符组成的字符串的编码算法;
什么是二进制数据?
答:非文本的数据是二进制数据;
用途:
让原数据具有字符串所有的特性,如放在 URL 中传输、可以保存到文本文件、可以通过普通的聊天软件进行文本传输;
把原本人眼可以看懂的字符串变成读不懂的字符串,减低偷窥风险;
变种:Base58
Hash
定义
把任意数据转换成指定大小范围(通常很小)的数据
作用
摘要、数字指纹
经典算法
MD5(不可逆、不是加密(加密的前提需要可逆解密))、SHA1、SHA256 等
实际用途
验证文件的完整性;