【发布时间】:2016-08-10 13:26:16
【问题描述】:
我正在尝试加密从我的 Web 应用程序发送到我的服务的 POST 正文请求。
并且加密是在过滤器中完成的。
我遇到了内容长度的问题,在JavaScript 和过滤器中为帖子调用设置了内容长度,随着加密完成,内容长度发生变化(长度增加)以及传输数据时对于服务,数据将被截断为其最初(加密之前)的数据长度,这使得数据无法使用。
加密代码:
public void jsonEncrypt(String passPhrase, int iterationCount, int keySize, String salt, String initializationVector) throws IOException {
String json = new String(body, StandardCharsets.UTF_8);
AesUtil aesUtil = new AesUtil(keySize, iterationCount);
encryptJsonText = aesUtil.encrypt(salt, initializationVector, passPhrase, json);
byte[] b = encryptJsonText.getBytes();
body = b;
}
【问题讨论】:
-
能否提供用于加密和发送数据的代码?如果您需要加密,为什么不依赖
HTTPS? -
以下是我用来加密 JSON 的方法我有一个要求,请求不应该是可读格式,这样请求数据就不会被操纵。
public void jsonEncrypt(String passPhrase, int iterationCount, int keySize, String salt, String initializationVector) throws IOException { String json = new String(body, StandardCharsets.UTF_8); AesUtil aesUtil = new AesUtil(keySize, iterationCount); encryptJsonText = aesUtil.encrypt(salt, initializationVector, passPhrase, json); byte[] b = encryptJsonText.getBytes(); body = b; } -
我已经编辑了你添加代码的问题,下次记住你应该编辑问题而不是在评论中发布代码。顺便说一下,这是服务器端加密,对吧?
-
谢谢...是的。这是服务器端加密。
标签: javascript jquery ajax servlets encryption