优秀的编程知识分享平台

网站首页 > 技术文章 正文

浅谈编解码和加解密(编解码的基本步骤)

nanyue 2024-10-03 23:41:42 技术文章 16 ℃

面试交流过程中,发现部分同学对加密层面的知识理解不太到位,这里小结下。

编解码

  1. 无密钥
  2. 本质上维护的是字符间的映射关系
  3. 编码结果有特征可被猜出用的哪种编码
  4. 双向
  5. 常见算法:URLEncode/URLDecode,Base58/Base64

消息摘要

  1. 无密钥
  2. 基于散列(Hash)函数,因为哈希函数对字符变动敏感
  3. 单向,只能把文本哈希成摘要值,不能把摘要值还原回去
  4. 哈希碰撞的概率低,不太可能多个文本产生的哈希值相同
  5. 常见的算法:SHA-1/SHA-128/SHA-256(Security Hash Algorithm)和MD1/MD5(Message Digest)
  6. 保证内容完整性以及不可篡改

加解密

  1. 有密钥,根据密钥数量分成对称加密和非对称加密。对称加密仅一个;非对称加密是公私密钥对,一共两个
  2. 双向
  3. 对称加密的话加解密用同一个;非对称加密的话加密用私钥解密则用公钥,加密用公钥解密必须是私钥
  4. 常见算法:AES(Advanced Encryption Standard)、DES(Data Encryption Standard)以及3DES(Triple DES)、RSA

当然,更加安全的方式是对称加密+非对称加密一起使用,如支付宝和商户之间传输的报文就是这种模式(AES+RSA,用AES加密报文,再用RSA加密AES密钥)

数字签名

  1. 消息摘要 + 非对称加密
  2. 消息摘要负责对文本进行摘要,保证文本的内容完整性以及不可篡改
  3. 非对称加密,用于用户信息认证
  4. 把用户信息进行摘要,并使用私钥对摘要进行加密,把原文和加密结果一起组成证书。一般存在认证机构,当然也可以自认证。
  5. 常见的算法:Sha1WithRSA

小结

本文对加解密、消息摘要、对称加密、非对称加密以及数字签名这些概念粗略对比,可以让同学在实际面试以及工作中对加密领域有个宏观认识。

Tags:

最近发表
标签列表