如果我想加密服务器上的数据,并将其发送到我已经实现并发送给客户的客户端程序,那么无论如何我可以将解密密钥和算法存储在客户端程序中,而不用担心逆向工程我的客户端程序将使用户能够解密我发送的所有数据。 也就是说,我希望我的客户端程序能够控制解密的内容和不解密的内容。
由于 Jeeji
答案 0 :(得分:1)
您可以毫无风险地对算法进行硬编码。安全性必须基于密钥的保密性,而不是算法的保密性。
要秘密存储解密密钥,您可以使用密钥库。
我不知道您使用的是哪种语言,但Java包含自己的密钥库,而对于C,您可以通过NSS获得密钥库。要打开这些密钥库,您将需要一个密码,用户可以在客户端应用程序启动时输入该密码。
如果您的客户端在linux和gnome上运行,那么您也可以使用Gnome的密钥环,在这种情况下,用户无需键入密码即可打开密钥环(登录密码也用于打开密钥环)