如果客户端只有一个会话ID要发送到服务器的请求,如何为客户端提供解密的用户数据?



简而言之,当用户只有一个会话ID要与请求一起发送到服务器时,如何解密在客户端向服务器发出请求时使用用户密码加密的用户内容?

我是否让客户端像会话ID一样存储用户密码,以便它可以与请求一起发送,以便服务器可以使用它来解密用户的内容?

我真的不知道它应该是如何工作的,比如,标准笔记,让你输入你的凭据一次,然后你可以做任何你想要的笔记,可能会存储在他们的服务器上加密,并与其他设备同步登录到你的标准笔记账户解密。也就是说,我不需要每次都输入密码来保存笔记,或者获取所有解密的笔记。

我的猜测是服务器实际上不解密数据,而是将加密的数据发送到客户端,客户端在本地存储密码,并在本地解密数据,在客户端?如果是这种情况,那么如何在客户机中存储密码呢?

(这在技术上是一个一般的,抽象的问题,但作为一个参考,我试图实现这与Node.js服务器,其中(加密)用户内容存储在JSON文件)

编辑基本上,从答案和其他人那里,我开始明白我对加密密钥的理解是错误的。所以。是的。因此,这个问题也有点错。

我的猜测是服务器实际上不解密数据,而是将加密的数据发送到客户端,客户端在本地存储密码,并在本地解密数据,在客户端?如果是这种情况,那么如何在客户机中存储密码呢?

这完全正确。服务器不应该能够解密数据,除非它们有特定的需要。密码存储在用户的密码管理器中,否则存储在用户的大脑中。

加密密钥要么是从密码派生的(例如使用PBKDF2或scrypt),要么是随机的,并使用密码派生的密钥进行加密。

存储这些密钥取决于您的客户端系统。理想情况下,它将与系统的安全密钥存储(例如Mac Keychain, Windows PasswordVault或Android Keystore)集成,但具体取决于您的客户端如何实现。

相关内容

最新更新