写给开发人员的实用密码学(四)—— 安全随机数生成器 CSPRNG

本文主要翻译自 Practical-Cryptography-for-Developers-Book

在密码学中,随机性(熵)扮演了一个非常重要的角色,许多密码学算法都要求使用一个不可预测的随机数,只有在生成的随机数不可预测时,这些算法才能保证其安全性。

比如 MAC 算法中的 key 就必须是一个不可预测的值,在这个条件下 MAC 值才是不可伪造的。

另外许多的高性能算法如快速排序、布隆过滤器、蒙特卡洛方法等,都依赖于随机性,如果随机性可以被预测,或者能够找到特定的输入值使这些算法变得特别慢,那黑客就能借此对服务进行 DDoS 攻击, 以很小的成本达到让服务不可用的目的。

写给开发人员的实用密码学(一)—— 概览

本文主要翻译自 Practical-Cryptography-for-Developers-Book

你是软件开发人员吗?有时你会需要在日常工作中使用哈希、加密或数字签名等密码学工具吗?你认为密码学很复杂,充满了数学知识,而且只适合书呆子吗?不,不是这样滴,每个开发人员都可以学习如何使用加密算法。

从开发人员的角度理解密码学概念不需要你是一个厉害的数学家。这个系列的文章将尽量以最浅显的方式教你应用密码学的基础知识,而且包含大量循序渐进的代码示例和实践练习——就像你学习 Web 开发、数据库或 APP 开发一样。

Kubernetes 微服务最佳实践

本文由个人笔记ryan4yin/knowledge 整理而来

本文主要介绍我个人在使用 Kubernetes 的过程中,总结出的一套「Kubernetes 配置」,是我个人的「最佳实践」。其中大部分内容都经历过线上环境的考验,但是也有少部分还只在我脑子里模拟过,请谨慎参考。