写给开发人员的实用密码学(三)—— MAC 与密钥派生函数 KDF (thiscute.world)

【简介】

我们都更喜欢使用密码来保护自己的数据而不是二进制的密钥,因为相比之下二进制密钥太难记忆了,字符形式的密码才是符合人类思维习惯的东西。

可对计算机而言就刚好相反了,现代密码学的很多算法都要求输入是一个大的数字,二进制的密钥就是这样一个大的数字。

点击查看原文 >>

@技术头条 2023-11-06 23:05 / 0个评论
赞过的人: @IT技术博客大学习
要不要再学学下面的文章?
实用密码学之数字证书与 TLS 协议 (thiscute.world)
现代人的日常生活中,HTTPS 协议几乎无处不在,我们每天浏览网页时、用手机刷京东淘宝时、甚至每天秀自己绿色的健康码时,都在使用 HTTPS 协议。

作为一个开发人员,我想你应该多多少少有了解一点 HTTPS 协议。 你可能知道 HTTPS 是一种加密传输协议,能保证数据传输的保密性。 如果你拥有部署 HTTPS 服务的经验,那你或许还懂如何申请权威 HTTPS 证书,并配置在 Nginx 等 Web 程序上。

但是你是否清楚 HTTPS 是由 HTTP + TLS 两种协议组合而成的呢? 更进一步你是否有抓包了解过 TLS 协议的完整流程?是否清楚它加解密的底层原理?是否清楚 Nginx 等 Web 服务器的 HTTPS 配置中一堆密码学参数的真正含义?是否知道 TLS 协议有哪些弱点、存在哪些攻击手段、如何防范?
by @技术头条 2024-03-13 13:35 查看详情
以非阻塞方式执行一个函数 (blog.codingnow.com)
用过 skynet 的应该都碰到过:当我们在服务中不小心调用了一个长时间运行而不返回的 C 函数,会独占一个工作线程。同时,这个被阻塞的服务也无法处理新的消息。一旦这种情况发生,看似是无解的。我们通常认为,是设计问题导致了这种情况发生。skynet 的框架在监测到这种情况发生时,会输出 maybe in an endless loop 。

如果是 Lua 函数产生的死循环,可以通过发送 signal 打断正在运行运行的 Lua 虚拟机,但如果是陷入 C 函数中,只能事后追查 bug 了。

那么,如果我原本就预期一段 C 代码会运行很长时间,有没有可能从底层支持以非阻塞方式运行这段代码呢?即,在这段代码运行期间,该服务还可以接收并处理新的消息?
by @技术头条 2024-03-13 13:20 查看详情
写给开发人员的实用密码学(六)—— 对称密钥加密算法 (thiscute.world)
在密码学里面,最容易搞混的词估计就是「密码」了,cipher/password/passphrase 都可以被翻译成「密码」,需要注意下其中区别。
by @技术头条 2024-01-14 19:01 查看详情
nginx 防火墙模块开发总结 (www.addesp.com)
那段时间我的站点有时会打不开,起初以为是网络问题,后来越来越严重,进入后台才发现数据库 IO 拉满了。看了看 nginx 的日志才发现站点被疯扫,于是打算做点什么。

然后在 Github 上看了几个防火墙模块,要不然功能不全,要不然使用复杂,于是萌生了自己写模块的想法。
by @技术头条 2023-12-26 22:24 查看详情
D-H 密钥交换—即使被窃听也能安全地交换密钥 (www.addesp.com)
是的,即使通信全程都被窃听,你依然可以和对方安全地协商出密钥来进行加密通讯。
by @技术头条 2023-12-26 22:23 查看详情
RisingWave 窗口函数:滑动的艺术与对称的美学 (stdrc.cc)
窗口函数(Window Function)是数据库和流处理中一项非常常用的功能,该功能可用于对每一行输入数据计算其前后一定窗口范围内的数据的聚合结果,或是获取输入行的前/后指定偏移行中的数据。在其他一些流系统中,窗口函数功能也被称作“Over Aggregation”1。RisingWave 在此前的 1.1 版本中加入了窗口函数支持2。在 RisingWave 的窗口函数实现中,我们把实施窗口函数计算的算子称为 OverWindow 算子,本文将尝试解析 OverWindow 算子的设计与实现。
by @技术头条 2023-12-11 23:09 查看详情
写给开发人员的实用密码学(二)—— 哈希函数 (thiscute.world)
更好的哈希函数可以使用这样的方案:它将第一个字节作为状态,然后转换状态(例如,将它乘以像 31 这样的素数),然后将下一个字节添加到状态,然后再次转换状态并添加下一个字节等。 这样的操作可以显着降低碰撞概率并产生更均匀的分布。
by @技术头条 2023-11-06 23:04 查看详情
写给开发人员的实用密码学(一)—— 概览 (thiscute.world)
从开发人员的角度理解密码学概念不需要你是一个厉害的数学家。 这个系列的文章将尽量以最浅显的方式教你应用密码学的基础知识,而且包含大量循序渐进的代码示例和实践练习——就像你学习 Web 开发、数据库或 APP 开发一样。
by @技术头条 2023-11-06 23:03 查看详情
专为技术写作人员提供的 7 条 Git 技巧 (linux.cn)
Git 帮助我跟踪内容的版本,并与开源社区进行协作。它是我存储工作成果、共享和讨论改进的重要工具。我主要使用的工具包括浏览器、用 OpenSSH 连接 Foreman 实例、用 Vim 编辑源文件,以及使用 Git 进行版本控制。

本文重点介绍在开始使用 Git 和为 Foreman 文档做贡献时经常遇到的挑战。适用于中级 Git 用户。
by @技术头条 2023-07-30 17:35 查看详情
如何在命令行中安全存取密钥信息:以 OpenAI API 密钥为例 (type.cyhsu.xyz)
大量涌现的 AI 项目引发了如何有效管理和取用 API 密钥的问题。每次复制粘贴过于麻烦,明文写进配置文件也不安全。但通过合理利用内置功能或第三方工具,就能用加密存储代替明文密钥,达到兼顾安全和便捷的目的。
by @技术头条 2023-07-23 12:30 查看详情