73 条回复  ·  8522 次点击
WngShhng 楼主 小成 2025-7-13 10:22:37
@likelylee 其实是因为做这种笔记软件,比较担心用户数据丢失,所以才加了 RSA 这套逻辑。离线的方式还是考虑到因为 Android 本身并不安全,所有离线的逻辑都有可能被破解,身份认证除了应用级别的认证,服务器的用户信息和用户文件没有任何联系,无法用来验证。
WngShhng 楼主 小成 2025-7-13 10:24:32
@wy315700 我理解你们说的,但是实际上开发的时候根本行不通,因为服务器记录的数据和用户本身没有任何联系,我服务器的用户数据只和会员信息绑定
nbndco 小成 2025-7-13 10:26:40
@WngShhng 他给你服务器发个请求你不是就解密给他了么,这不是拱手送上是啥
WngShhng 楼主 小成 2025-7-13 10:31:23
@nbndco 如果不使用 RSA 加密密钥,那实现起来更容易,但是如果用户忘记了自己的加密密钥,你有什么好的方案吗?前提是,服务器的用户信息和用户的笔记文件没有任何联系。就是一个文件给你,你有什么好的方案吗?
nbndco 小成 2025-7-13 10:36:41
@WngShhng 如果没有联系就无法验证用户身份那就不能为用户解密啊,这么简单的逻辑。又要用户随意取钱又不要验证用户身份又不用带卡能做到吗?总不能什么功能都可能实现啊。
a4526047 小成 2025-7-13 10:37:24
自以为是的楼主
WngShhng 楼主 小成 2025-7-13 10:37:39
@nbndco 那这样就只能让用户丢失数据了?如果用户跑来跟你要数据怎么办?
smlcgx 小成 2025-7-13 10:38:46
「这里的实现思路是,当写入加密文件的时候将用户设置的密钥通过 RSA 算法的公钥进行加密,并将加密的结果写入到文件。当用户忘记密钥的时候,可以读取加密文件的这部分区块,然后将这部分区块经过 Base64 编码之后上传到我们的服务器。然后,在我们的服务器上面,经过 Base64 解码成字节数组之后再使用私钥解密出用户的加密密钥。」 没咋研究密码学,只懂点非对称加密基本原理。 你这个东西如果服务器被黑,那所有用户的文件是不是都完蛋了?私钥放在服务器上风险是非常大的,一般来说对可信设备的验证就是再加一个可信设备,防止可信设备也就是私钥被盗的情况,公钥不用加密,而且跟你用什么加密算法没关系吧
WngShhng 楼主 小成 2025-7-13 10:41:13
@smlcgx 我服务器不会记录用户的文件,如果被黑,他们能拿到密钥,但是没有文件。你说的再增加一个可信设备是指什么?或者对这种情况,你有什么好的方案吗?
sanebow 初学 2025-7-13 10:43:41
别的先不说,这个“有意思”的用户密钥还原算法,如果用户设置的密码是 1234567812345678 ,还原出来不是变成了 12345678 ?换句话说,这个密钥扩充方式会导致一些更长的密码实际等价于 8 位密码,另一个例子比如 11 个 8 的密码和 8 个 8 是一样的
返回顶部