我需要开发一个Android应用程序,其中加密/解密是在客户端完成的。在服务器上传输和存储的数据必须进行加密。问题在于我无法将加密/解密密钥存储在任何地方。
密钥不能存储在客户端机器上。因为管理员(或可以访问服务器的人)不应该能够访问未加密的数据。
那么如何生成密钥?你可以提出一些方法吗?
密钥不能存储在客户端机器上。因为管理员(或可以访问服务器的人)不应该能够访问未加密的数据。
那么如何生成密钥?你可以提出一些方法吗?
因此,假设加密密钥是外部的,那么就有些直截了当了,因为选择余地不大:你的客户端应用程序要求用户以某种方式输入加密密钥(由你决定),然后使用它来加密数据,然后立即忘记加密密钥。
然后将加密后的数据发送到服务器上,在那里存储。服务器不知道加密密钥,所以对于服务器来说,它只是一个不透明的数据块。
当用户想要检索数据时,他们必须立即提供解密密钥,因为它没有存储在设备上。