gpt4 book ai didi

java - 将加密/解密 key 存储到静态变量中是否安全?

转载 作者:行者123 更新时间:2023-12-02 10:12:44 26 4
gpt4 key购买 nike

我正在 Android Studio 中开发一个应用程序,并通过 JSON 将数据从服务器传递到手机。

有办法加密 JSON 数据吗?

将加密/解密 key 存储到静态变量中是否安全?如果不是,我应该将 key 存储在 Android 中的哪里?

下面这些问题都没有帮助我:

Can I encrypt my JSON data?

Encrypt json data

最佳答案

将加密/解密 key 存储到静态变量中绝对不安全。

对于这种通信,不是在服务器和您的应用程序之间共享一个 secret (对称) key (您必须安排和跟踪),而是使用非对称 key 对。 key 对是私钥和相应的公钥。

假设您只需要加密从服务器到应用程序的一种方式的数据:您的应用程序生成一个随机的、可有可无的临时 key 对,并将公钥发送到服务器。然后,服务器可以使用该公钥来加密发送回应用程序的消息,而无需看到私钥,并且该消息只能使用从未离开应用程序的私钥来解密。公钥不能用于解密,只能用于加密。

如果该 key 对是仅为该交换而创建的,则可以将其丢弃并随时(或在过期日期/时间之后)建立新的 key 对以进行通信。

也就是说,这一切都是通过 https 连接在两个方向上自动完成的。因此,设置它可能会满足您的需求。否则的话,你就像是在重新发明轮子。除非你想要对安全进行那种严格的控制。即便如此,两者都做!

**注意:以上解释仅用于概念目的。严格来说,https 使用 Diffie-Hellman key 交换在客户端和服务器之间发送公钥(如上所述),但这些 key 用于计算共享对称 key ,这在计算上更加高效。

关于java - 将加密/解密 key 存储到静态变量中是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54883277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com