Eth*_*han 4 security cryptography
我正在考虑创建一个允许人们输入文本的Web应用程序(使用SSL连接),并在保存到数据库之前对其进行加密.目标是让它只有用户可以解密它.
您可以让用户输入密钥及其数据,并在他们想要查看数据时再次输入密钥,而不是存储密钥.不过,这对用户来说会有点痛苦.
但是,如果您将密钥存储在服务器上,则您可以访问它并可能解密其数据.
如果没有用户每次都输入密钥或存储密钥,我认为不可能做到这一点,但是我有没有想到的方法?就像可能只从用户知道的信息生成密钥?什么涉及饼干?
听起来你可以用PGP做点什么.如前所述,您将拥有公钥和私钥.私钥可以通过密码保护.这样你可以将私钥存储在db上,因为它仍然需要使用密码来使用它.
最大的问题是如果用户忘记密码,他们可能会丢失这些数据.您可以使用备用解密密钥(ADK)来解决这个问题.该密钥随所有内容自动加密,可以在多个人之间进行分割.
从信息安全的角度来看,只有当加密/解密是在用户的计算机上完成,而不是在您的服务器上完成时,这才有意义(因为不能保证您不存储密钥和/或明文)。JavaScript 是不可能的,所以您需要一个客户端应用程序*。
此外,公钥密码学的计算成本很高。如果您有很多用户并决定在服务器上进行加密/解密,您可能需要记住这一点。
* 或 Java 小程序,但那是 90 年代的事了。Silverlight 或 Flash 也可能有效。