Android中从一个应用程序向另一个应用程序发送数据时的加密

2024-05-22

我想将敏感数据从一个应用程序发送到另一个应用程序。

我使用 Intent 并通过 Bundle 发送数据。现在,我应该使用加密算法来加密要发送的数据,同时接收器应用程序将解密数据。

哪种算法最适合移动平台?

我浏览过RSA文档,建议不建议用于长文本加密。

我已经看到该算法使用随机密钥生成方法,这在我的情况下会导致问题,因为两个应用程序都需要共享相同的密钥来加密和解密。


我浏览过RSA文档,建议不建议用于长文本加密。

true

取决于密钥长度,e。 G。带有 pkcs#1.5 填充的 2048 密钥旨在加密最大 245 字节。一些实现框架强制执行的甚至更少(144 字节,..)

我已经看到该算法使用随机密钥生成方法,这在我的情况下会导致问题,因为两个应用程序都需要共享相同的密钥来加密和解密。

实际上 - 这是常用的两种方式的组合。看混合密码系统 https://en.m.wikipedia.org/wiki/Hybrid_cryptosystem

基本上 - 每个应用程序都有自己的密钥对,并且应用程序共享目标方的公钥。您可以使用随机密钥进行数据加密,并使用 rsa 来加密数据密钥。然后放心地使用 Intend 和 Bundle 来移动加密数据和加密密钥。

这可能是一个很好的起点。

Edit:

我需要将数据从我的一个应用程序(A)发送到另一个应用程序(B)。因此,A 将对数据进行加密,并将加密后的数据发送给 B(密钥在应用程序 A 中生成)。

如果您发送加密密钥(我们称之为data key)沿着简单的数据,任何拦截流量(意图或捆绑)的人都能够解密数据。这就是 RSA 发挥作用的地方。您可以以只有 B 可以解密的方式加密数据密钥

现在B必须解密数据。如果新的密钥生成代码将写入应用程序 B 中,那么它将创建不同的密钥,因此将无法解密......

尝试搜索并了解非对称密码 (RSA) 的工作原理。完整的描述超出了问题的范围,您可以询问另一位其中不清楚的地方。

基本上 - 应用程序 B 需要创建一个密钥对(公钥和私钥)。公钥用于加密,私钥用于解密。 A需要得到B的公钥来加密数据密钥。 如何从 B 到 A 获取公钥取决于您(共享存储、在应用程序中配置,..)

如果您希望传递加密数据而不在应用程序之间共享公共秘密,那么 RSA 是一种不错的选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android中从一个应用程序向另一个应用程序发送数据时的加密 的相关文章

随机推荐