【问题标题】:Encrypt in React Native, decrypt in Java在 React Native 中加密,在 Java 中解密
【发布时间】:2021-07-08 14:34:13
【问题描述】:

我需要一个简单的解决方案来从我的 React Native 应用程序中加密 AES 中的字符串,发送到服务器并使用 Java 从那里解密。 我找到了一些解决方案,但我无法使其工作...... 非常感谢!

【问题讨论】:

  • 简单的解决方案:使用 HTTPS。
  • I found some solutions but I am not able to make it works... 请提供更多详细信息(例如 React 和 Java 中的代码),否则我们只是在猜测。无论如何-您是否正在尝试 https 不够的东西?

标签: java reactjs react-native encryption aes


【解决方案1】:

对于 Javascript/React Native 方面,我使用过 crypto-js,之前应该只需要几行代码即可实现。

npm install crypto-js

然后在你的代码中

import AES from 'crypto-js/aes'

const stringToEncrypt = 'my string';
const secretKey = 'secret key 123';
const encryptedString = AES.encrypt(stringToEncrypt, secretKey).toString();

然后您可以将 encryptedString 发送到您的服务器,最好通过 https 使用 AxiosFetch 之类的东西

【讨论】:

  • Thx,我发现的几乎所有使用 AES 的示例都使用带有盐和初始化向量的密钥。我尝试在 Java 中复制相同的内容,但是我得到的加密字符串是不同的。在您的示例中,您知道如何在 Java 中读取它吗?
  • 经过反思,是的,您需要一个密钥才能通过 AES 进行加密。您可以使用环境变量将其安全地存储在服务器和 React Native 代码中以确保其安全。我已经相应地更新了我的答案。我的 Java 不是很好,所以我建议使用 Cypher (import javax.crypto.Cipher) docs.oracle.com/javase/7/docs/api/javax/crypto/Cipher.html 查找解密
  • 在我的情况下,密钥被放置在密钥库文件中,我如何从中读取和访问密钥,以便在本机反应中使用来加密我的纯文本
猜你喜欢
  • 2021-03-11
  • 2014-11-24
  • 2013-11-10
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
相关资源
最近更新 更多