为什么非对称加密比对称加密慢1000倍:从数学原理到混合加密的工程智慧

1976年,Whitfield Diffie和Martin Hellman发表了一篇划时代的论文,提出了公钥密码学的概念。在此之前,任何想要秘密通信的双方都必须预先共享密钥——这是一个困扰密码学家数千年的难题。然而,公钥密码学在解决密钥分发问题的同时,也带来了一个新的困境:它太慢了。 ...

10 min · 4631 words

2038年1月19日会发生什么?从Unix时间戳溢出到四十年技术债的完整解析

2038年1月19日,北京时间上午11点14分08秒,全球数以亿计的计算机系统可能同时陷入混乱。那一刻,Unix时间戳将达到2,147,483,647——32位有符号整数的最大值。下一秒,时间将"倒流"到1901年12月13日。 ...

13 min · 6472 words

浮点数为何会撒谎?从0.1+0.2不等于0.3到导弹拦截失败的技术真相

打开浏览器的开发者工具,在控制台输入0.1 + 0.2。结果不是0.3,而是0.30000000000000004。 这不是JavaScript的bug。Python、Java、C、Rust——几乎所有主流语言都会给出同样的答案。你的编程语言没有错,错的可能是你对计算机如何处理数字的直觉。 ...

12 min · 5865 words

为什么不存在万能压缩算法:从香农熵到不可能三角的数学真相

1948年,贝尔实验室的Claude Shannon在《Bell System Technical Journal》上发表了一篇论文——“A Mathematical Theory of Communication”。这篇论文定义了一个被称为"熵"的量: ...

12 min · 5650 words

压缩算法的五十年技术博弈:为什么速度和压缩比从来不能兼得

1948年,贝尔实验室的克劳德·香农发表了一篇题为《通信的数学理论》的论文。这篇论文定义了一个叫做"熵"的概念:对于任何信息源,存在一个不可逾越的压缩极限。无论你用什么方法,都无法把数据压缩到这个极限以下而不丢失信息。 ...

12 min · 5723 words

一个字符有几张脸?Unicode的三十五年编码困境

在Stack Overflow上,一个反复出现的问题困扰着无数开发者:为什么JavaScript中"🤦🏼‍♂️".length的结果是7,而不是1? ...

14 min · 6833 words

没有完美的数据结构:从时空权衡到缓存友好的选择之道

1953年,IBM工程师Hans Peter Luhn在一份内部备忘录中提出了一个改变计算机科学进程的想法:用哈希函数将数据映射到固定位置,实现快速查找。这个被称为"哈希表"的数据结构,至今仍是计算机领域应用最广泛的发明之一。 ...

11 min · 5015 words