Home avatar

时光似海

同态加密登陆

在服务器日常登录过程中,一般是前端传输账号和密码到服务器,然后服务器对账号密码进行校验。但在这个过程中有两个问题,假设传输过程中信息被截获(或者打印日志然后日志泄漏等操作),可能导致密码泄漏。如果服务器数据泄漏,也会导致密码泄漏。一般来说我们服务器中存储的是密码的sha256,这样可以解决服务器数据泄漏的问题,但是传输过程中的问题没有解决(前端hash再传输是无效的,因为这样做hash后的值等效于密码)。我们希望提出一种方案,同时满足传输过程中信息任意泄漏,服务器数据任意泄漏,也可以保证密码的安全。

想法来源:

同态加密允许加密一个值,并使用加密后的值进行运算。实现同态加密有多种方式,这里简单介绍一个简要例子

选择一个自然数作为基数(这个基数需要具备一些特定的属性),将基数记为g,用 g去加密一个值,即g为底数,需要加密的值为指数。比如,我们要加密一个数值 3,取 g为 5:

TinyRenderer笔记2:透视投影

前面渲染模型时候,没有考虑每个点的z坐标,这种方式叫做正交投影Orthographic projection,模型看起来偏胖,因为我们平时在3d世界看到的物体都是近大远小的。透视投影Perspective projection就是用近大远小的方式投影。

Nostr账号Nip05验证方法

最近Damus App很火,写一篇教程教大家如何在App中获得紫v图标认证。

NIP是Nostr改进提议Nostr Improvement ProposalNIP05描述了一种账号验证方法。可以想象成telegram或者twitter上的蓝色V标记,在Damus里是一个紫V图标,客户端展示这个图标,就说明该用户通过了NIP05验证。

水群学习法

云玩家,全靠群友水群时候蹭经验,群友太强啦!

问题:

这里是box<struct> -> box<dyn trait>, 还是box<struct -> dyn trait>, 如果是后者,运行时怎么拿到size的?

TinyRenderer笔记1:Z-buffer和纹理插值

上一篇结尾渲染出了光照下的模型:

但是这个模型看起来有些奇怪,尤其是嘴巴的部分。因为渲染时候仅仅是按照从模型中读取的顶点信息,将三角形一个个的画了出来,但是并没有考虑三角形的遮挡关系。如果我们先画出了面部的三角形,然后又画了脑后勺的三角形,那最终展示出来的图形就会像上面一样很奇怪,原因是我们没有处理深度信息。