算法
文章平均质量分 93
math345
这个作者很懒,什么都没留下…
展开
-
仿射变换中的旋转缩放变换矩阵推导
仿射变换可以将矩形转换为平行四边形,可以挤压形状,但是必须保持两边平行。常见的是旋转、缩放、平移变换。缩放和平移比较简单,本文重点推导旋转缩放变换矩阵。原创 2024-04-21 11:14:44 · 1062 阅读 · 2 评论 -
从欧拉函数、欧拉定理到RSA加解密
古希腊哲学家苏格拉底曾言:“我唯一知道的就是我一无所知。”;中国儒家学派创始人孔子曰:“知之为知之,不知为不知,是知也。”;德国著名数学家希尔伯特则满怀信心地说道:“我们必须知道,我们必将知道。”。我觉得希尔伯特和苏格拉底、孔子的说法并不矛盾,因为只有当你知道自己不知道时,才会去探寻,才会说"我们必须知道,我们必将知道"。欧拉在发现欧拉函数、欧拉定理时,肯定不知道他发现的这些东西会成为当代计算机密码学中非对称秘钥RSA的基石。英国著名数学家哈代(华罗庚的导师)也不知道,甚至他认为这些定理大都是无用的。原创 2022-06-12 15:09:39 · 938 阅读 · 1 评论 -
MAC 和哈希函数、签名的冤孽(看JWT有感)
我在看 Json web token (JWT) 的时候,发现网上很多文章对 HMAC 有很多误解,比如在讨论 HMACSHA256/HMACSHA512 时,加密、私钥、签名各种误解混杂在其中。因此写了这篇文章,抛砖引玉。HMAC(Hash-based Message Authentication Code) 是一种基于哈希的消息验证码,由Mihir Bellare、Ran Canetti和Hugo Krawezyk 于1996年提出。这里有2个关键词,一是哈希(即哈希函数),二是验证码。 事实上HMAC原创 2022-06-01 09:01:38 · 1014 阅读 · 0 评论 -
B树和B+树
B树和B+树B树的定义B树是为磁盘或其他直接存取的辅助存储设备而设计的一种平衡搜索树,如下图。B树是Bayer和McCreight在1972年提出来的,但是他们并没有解释为什么取名为B树。B树类似于红黑树,但它们在降低磁盘I/O操作数方面要更好一些。许多数据库系统使用B树或者B树的变种如B+树来存储信息。B树与红黑树的不同之处在于B树的结点可以有很多孩子,从数个到数千个。也就是说,一个B树的"分支因子"可以相当大,尽管它通常依赖于所使用的磁盘单元的特性。B树类似于红黑树,就是每棵含有n个结点的B树原创 2021-10-28 09:04:22 · 1073 阅读 · 0 评论