扫码阅读
手机扫码阅读

系统设计 | 编码、散列和加密

230 2024-08-27

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:系统设计 | 编码、散列和加密
文章来源:
TechLead 少个分号
扫码关注公众号

摘要

本文详细解析了编码、散列和加密三种数据处理方式的概念、异同和使用场景。说明了许多安全事件是由于人们对这些概念理解不足造成的,如错误地将Base64作为加密方法。强调只有加密能真正保护数据安全,而散列用于识别身份,编码几乎不提供安全保护。

1. 编码、散列和加密的异同

编码是转换数据格式以适应不同系统和平台的过程,可逆转。散列是将源数据转换为固定长度的不可逆转的字母编码,用于数据完整性校验。加密是将数据转换为无法识别的密文以保护安全,现代加密依赖于密钥的机密性。

2. 数据编码

常见数据编码包括Base系列编码、URL编码、HTML实体编码、HEX二进制编码和Unicode编码等,各自用于不同的应用场景,例如HTTP认证和URL传输。

3. 散列

散列算法将数据转换为固定长度的唯一标识符,但可能发生碰撞。除了常见的MD5和SHA1散列算法,还介绍了Bcrypt和国密SM3 SM4散列算法。散列算法用于信息安全但不可逆,且在密码保护方面存在限制。

4. 加密

加密可以分为古典和现代密码学,现代算法如DES、AES和RSA基于数学原理,以密钥的机密性保护信息。在系统设计中,应在适当场景使用合适的加密算法。

想要了解更多内容?

查看原文:系统设计 | 编码、散列和加密
文章来源:
TechLead 少个分号
扫码关注公众号

一线开发 TechLead,讨论系统设计技术方案和技术管理,原名《DDD和微服务》。

109 篇文章
浏览 24K
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设 白皮书上线