JWT 签名算法 HS256、RS256 及 ES256 及密钥生成

签名算法

介绍具体的 JWT 签名算法前,先解释一下签名、摘要/指纹、加密这几个名词的含义:

  1. 数字签名(Digital Signature): 就和我们日常办理各种手续时需要在文件上签上你自己的名字一样,数字签名的主要用途也是用于身份认证。
    1. 更准确的讲,数字签名可保证数据的三个特性:真实性(未被伪造)、完整性(不存在缺失)、不可否认性(确实是由你本人认可并签名)
  2. 数字摘要(digest)/数字指纹(fingerprint): 指的是数据的 Hash 值。
  3. 加密算法:这个应该不需要解释,就是对数据进行加密。。

数字签名的具体实现,通常是先对数据进行一次 Hash 摘要(SHA1/SHA256/SHA512 等),然后再使用非对称加密算法(RSA/ECDSA 等)的私钥对这个摘要进行加密,这样得到的结果就是原始数据的一个签名。

2019 年年终总结

迟到的年终总结

我是今年六月底到的深圳,运气很好,第一面就面上了现在所在的公司,以下就叫它 W 公司吧。公司的技术栈也很适合我,在入职到现在的这半年里,我学到了不少知识。

但是运气也差,只有这么一家公司约了我面试,投的其他简历都石沉大海…

Kubernetes 常见错误、原因及处理方法

  1. OOMKilled: Pod 的内存使用超出了 resources.limits 中的限制,被强制杀死。
  2. SandboxChanged: Pod sandbox changed, it will be killed and re-created: 很可能是由于内存限制导致容器被 OOMKilled,或者其他资源不足
    1. 如果是 OOM,容器通常会被重启,kubectl describe 能看到容器上次被重启的原因State.Last State.Reason = OOMKilled, Exit Code=137.

Manjaro 使用指南

Manjaro 是一个基于 Arch Linux 的 Linux 滚动发行版,用着挺舒服的。最大的特点,是包仓库很丰富,而且都很新。代价是偶尔会出些小毛病。

逃离我的大学

四年大学惨淡收场,坐在火车硬座上,心里有些忐忑。

对面坐着一个 16 岁的女孩子,从合肥去深圳当安检,隐约听到“700 块一个月”,“再怎么着十天也有一休吧”,说实话深感惭愧。

瘾的退却

这网络小说一起头,就停不下来。开始还只是追更新,每天看看三四本书的更新(一更或二更)就行了,说不上心满意足,但也没多么欲求不满。

到了三月下旬,突然就想看本新书。念头一起就一发不可收拾,只挑二三十万字的连载书看——首要原因是怕收不住手,书太长的话,废寝忘食起来自己遭罪;其次是前二十多万字都可以免费看,后面才是收费章节。

Python 并发编程:PoolExecutor 篇

个人笔记,如有疏漏,还请指正。

使用多线程(threading)和多进程(multiprocessing)完成常规的并发需求,在启动的时候 start、join 等步骤不能省,复杂的需要还要用 1-2 个队列。随着需求越来越复杂,如果没有良好的设计和抽象这部分的功能层次,代码量越多调试的难度就越大。