vlambda博客
学习文章列表

编码、加密、Hash算法

现代密码学

不止可以用于文字内容,还可以用于各种二进制数据;

  • 对称加密

原理:使用密钥和加密算法对数据进行转换,得到的无意义的数据即为密文;使用密钥和解密算法对密文进行逆向转换,得到原数据;

经典算法:DES(密钥过短,已经被淘汰)、AES

  • 非对称加密

原理:使用公钥对数据进行加密得到密文,使用私钥对密文进行解密得到原文;

公钥可以解密私钥加密的密文;

经典算法:RSA、DSA(用来设计签名)

密码学密钥和登录密码

  • 密钥(key)

场景:用于加密和解密;(关键字:加密和解密) 目的:保证数据被盗时不会被人读懂内容;焦点:数据;

  • 登录密码(password)

场景:用户进入网站或游戏前的身份认证;(关键字:身份认证) 目的:数据提供方或应用服务方对账户拥有者数据的保护,保证[你是你]的时候才提供权限;焦点:身份;

Base64

  • 将二进制数据转换成由 64 个字符组成的字符串的编码算法;

  • 什么是二进制数据?

答:非文本的数据是二进制数据;

  • 用途:

让原数据具有字符串所有的特性,如放在 URL 中传输、可以保存到文本文件、可以通过普通的聊天软件进行文本传输;

把原本人眼可以看懂的字符串变成读不懂的字符串,减低偷窥风险;

  • 变种:Base58

Hash

  • 定义

把任意数据转换成指定大小范围(通常很小)的数据

  • 作用

摘要、数字指纹

  • 经典算法

MD5(不可逆、不是加密(加密的前提需要可逆解密))、SHA1、SHA256 等

  • 实际用途

验证文件的完整性;