扫码阅读
手机扫码阅读
系统设计 | 编码、散列和加密
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 又火了起来?
比如在分布式系统当中,我们必须要考虑到事务的问题、性能的问题,还有数据查询等等各种各样在单体世界里面不需要考虑的问题,因此对我们的模型创建又提出了更高的要求和挑战。人们选择了 DDD 来 “一本正经” 的建模,而不敢再 “拍脑袋”。
咨询思维:PAST-DR 问题解决框架
这里根据同事的一些经验,我使用了一根线将一些方法论串起来整合成一个轻量级的咨询基线框架,为咨询的过程提供了一个一般模式。对于非咨询师来说,可以用咨询的思维扮演一个咨询师的角色解决工作中的各类问题。
建模和编程中的契约 —— Design By Contract
1. 业务是生意,不是功能也不是交互,人是生意的主体。\x0a2. 人是不可靠的,需要用契约来约束生活的方方面面。\x0a3. 把软件组装起来的连接点就是接口,接口也是契约。\x0a4. 开发软件是关于生意的生意,管理团队也需要契约。
领域建模的原则(战术篇)
当团队规模非常大、系统极其复杂的时,我们就需要制定一些原则来评审、检查各个各个团队产出的模型是否合适。
系统设计 | 基于读者反馈的补充更新 (1)
频率表达格式,SSE 推送,DSL 补充案例,高精度计算相关库,基于 HTML 的PDF 导出,补充流程引擎、规则引擎、公式引擎区别。
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线