解密客户端机器上的数据

Decrypt data on client machine

如果我想在服务器上加密数据,并将其发送到我已经实现并发送给客户的客户端程序,无论如何我可以将解密密钥和算法存储在客户端程序中,而无需冒险对我的客户端程序进行逆向工程将使用户能够解密我发送的所有数据。 也就是说,我希望我的客户端程序控制它解密的内容和不解密的内容。

谢谢 吉吉

您可以毫无风险地对算法进行硬编码。安全性必须基于密钥的保密性,而不是算法的保密性。

要秘密存储解密密钥,您可以使用密钥库。

我不知道您使用的是哪种语言,但是 Java 包含它自己的密钥库,对于 C,您可以通过 NSS 获得一个密钥库。要打开这些密钥库,您需要一个密码,用户可以在客户端应用程序启动时输入该密码。

如果您的客户端在 linux 和 gnome 上运行,那么您也可以使用 Gnome 的密钥环,在这种情况下用户将不需要输入密码来打开密钥环(登录密码也是用于打开钥匙圈)。