扫码阅读
手机扫码阅读
系统设计 | 编码、散列和加密

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


TechLead 少个分号
扫码关注公众号
摘要
本文详细解析了编码、散列和加密三种数据处理方式的概念、异同和使用场景。说明了许多安全事件是由于人们对这些概念理解不足造成的,如错误地将Base64作为加密方法。强调只有加密能真正保护数据安全,而散列用于识别身份,编码几乎不提供安全保护。
1. 编码、散列和加密的异同
编码是转换数据格式以适应不同系统和平台的过程,可逆转。散列是将源数据转换为固定长度的不可逆转的字母编码,用于数据完整性校验。加密是将数据转换为无法识别的密文以保护安全,现代加密依赖于密钥的机密性。
2. 数据编码
常见数据编码包括Base系列编码、URL编码、HTML实体编码、HEX二进制编码和Unicode编码等,各自用于不同的应用场景,例如HTTP认证和URL传输。
3. 散列
散列算法将数据转换为固定长度的唯一标识符,但可能发生碰撞。除了常见的MD5和SHA1散列算法,还介绍了Bcrypt和国密SM3 SM4散列算法。散列算法用于信息安全但不可逆,且在密码保护方面存在限制。
4. 加密
加密可以分为古典和现代密码学,现代算法如DES、AES和RSA基于数学原理,以密钥的机密性保护信息。在系统设计中,应在适当场景使用合适的加密算法。
想要了解更多内容?


TechLead 少个分号
扫码关注公众号
TechLead 少个分号的其他文章
为什么 DDD 又火了起来?
比如在分布式系统当中,我们必须要考虑到事务的问题、性能的问题,还有数据查询等等各种各样在单体世界里面不需要考虑的问题,因此对我们的模型创建又提出了更高的要求和挑战。人们选择了 DDD 来 “一本正经” 的建模,而不敢再 “拍脑袋”。
使用概念图梳理编程中的概念
概念图节点是概念,概念是认知世界的元素,按照诺瓦克定义来说,就是给印象中的事物打一个标签。
技术管理 | 为什么事情推不动?
我有一个绝妙的主意,但是就是推不动怎么办?
系统设计 | 解决困难问题的思路
我们想要得到什么,就要先想想什么可以失去。
系统设计 | 高性价比的测试策略("瓜藤"比喻)
使用 E2E + Unit 的测试策略的显著提高测试覆盖率,驱动团队主动编写测试,并驱动代码应用和服务分离。
加入社区微信群
与行业大咖零距离交流学习


PMO实践白皮书
白皮书上线
白皮书上线