现在前后端对接都是明文json,需要加密后传一个字符串,这应该怎么实现,提醒说要注意加密后的字符串长度

现在前后端对接都是明文json,需要加密后传一个字符串,这应该怎么实现,提醒说要注意加密后的字符串长度

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7515662
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:怎样在前端遍历后端服务器传递来的json字符串中的集合?
  • 除此之外, 这篇博客: 【个人博客项目 4】自定义全局返回类型模板、自定义全局异常,并以json形式返回在页面中的 首先添加全局的信息返回格式 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 自定义一个全局的返回格式,使返回结果更加规范化,前后端联调的时候能够更加轻松

  • 您还可以看一下 黄菊华老师的微信小程序Json数据使用专题课程中的 微信小程序入门到就业课(全栈课)学习说明【建议看下】小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    在前后端对接时对明文JSON进行加密并传输,可以使用对称加密算法和密钥来实现。具体步骤如下:

    1. 生成密钥:选择一个长度合适的密钥(比如128位),可以使用随机数生成器生成一个随机的密钥,并将其保存。
    import javax.crypto.KeyGenerator;
    import javax.crypto.SecretKey;
    import java.security.NoSuchAlgorithmException;
    
    // 生成密钥
    KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
    keyGenerator.init(128);
    SecretKey secretKey = keyGenerator.generateKey();
    byte[] keyBytes = secretKey.getEncoded();
    
    1. 加密明文JSON:使用AES对称加密算法,使用生成的密钥对明文JSON进行加密。
    import javax.crypto.Cipher;
    import javax.crypto.spec.SecretKeySpec;
    import java.util.Base64;
    
    // 加密明文JSON
    String jsonString = "{\"field1\": \"value1\", \"field2\": \"value2\"}";
    String algorithm = "AES";
    SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, algorithm);
    Cipher cipher = Cipher.getInstance(algorithm);
    cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
    byte[] encryptedBytes = cipher.doFinal(jsonString.getBytes());
    
    // 对加密后的字节数组进行Base64编码,得到加密后的字符串
    String encryptedString = Base64.getEncoder().encodeToString(encryptedBytes);
    
    1. 传输加密后的字符串:将加密后的字符串传输给后端。

    2. 后端解密:后端使用相同的密钥和加密算法对接收到的加密字符串进行解密。

    // 解密加密字符串
    byte[] encryptedBytes = Base64.getDecoder().decode(encryptedString);
    Cipher cipher = Cipher.getInstance(algorithm);
    cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
    byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
    
    // 解密后的字节数组转换为字符串
    String decryptedString = new String(decryptedBytes);
    

    需要注意的是,加密后的字符串长度是根据明文的长度和加密算法决定的。对称加密算法一般保持加密后的长度与明文长度相同。如果需要考虑加密后的字符串长度问题,可以选择使用非对称加密算法(如RSA)对密钥进行加密,然后使用对称加密算法对数据进行加密。这样可以实现加密后的字符串长度相对较短。

    以上是对明文JSON进行加密并传输的具体解决方案。如果您还有其他问题或需要进一步的帮助,请随时告诉我。

给前端说好 用什么加密方式 把整个参数都加密一下 你收到请求后 解密就行了