小编lea*_*ner的帖子

Java 9 迁移问题 - 包 com.mymodule 在未命名模块中声明,模块“newmodule”不读取它

我创建了一个具有以下结构的多模块项目

    myproject
      |- mymodule
         |- src
            |- main
               |- java
                  |- com
                     |- mymodule
                        |- Util.java

      |-newmodule
         |-src
           |-main
             |-java
               |-com
                 |-newmodule
                    |- Main.java
             |-module-info.java
Run Code Online (Sandbox Code Playgroud)

现在我想使用 Util.java,它是模块化模块 newmodule 中的非模块化代码。我已经在 newmodule 中声明了以下内容

module newmodule {
    requires mymodule;
}
Run Code Online (Sandbox Code Playgroud)

项目编译正常,但 Intellij 显示模块未找到并且包 com.mymodule 在未命名模块中声明,模块“newmodule”不读取它。

如何解决这个问题?

还有一个问题,如果我什至不模块化遗留模块,所有旧的非模块化代码是否在默认情况下都会变成 java 9 中的自动模块?

java migration java-9 java-module unnamed-module

9
推荐指数
1
解决办法
7398
查看次数

jdk.serialFilter 不能用于限制 Java 中 TreeMap 的深度(防止通过 Java 进行 DoS 攻击)

如何通过 Java 防止 DoS 攻击TreeMap

我的代码有一个接受Map对象的 API 。现在我想阻止客户端发送Map一定长度的对象。

现在maxarrayinjdk.serialFilter能够阻止客户端发送HashMap大小 >的对象maxarray

我也想这样做TreeMap。但是maxarrayfield 对TreeMap. 它无法拒绝该请求。

我也设置了maxdepth尺寸。但没有任何效果。

任何人都可以帮我解决这个问题吗?

java security denial-of-service treemap deserialization

7
推荐指数
2
解决办法
328
查看次数

错误 decrjavax.crypto.BadPaddingException:给定的最终块未正确填充。如果在解密过程中使用错误的密钥,可能会出现此类问题

我在使用 Java 密码学时遇到以下问题。

错误 decrjavax.crypto.BadPaddingException:给定的最终块未正确填充。如果在解密过程中使用错误的密钥,可能会出现此类问题。

我检查了所有可能的答案,但找不到这背后的确切原因。

一项观察结果是,当我使用 AES/CBC/NoPadding 代替 AES/CBC/PKCS5Padding 时,我可以成功执行它。

这是我的代码片段。

package demo;

import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.KeySpec;


public class TestEncryption {
    private static final int BUFFER_SIZE = 32;
    private static final int KEY_ITERATIONS = 65535;
    private static final int DEFAULT_KEY_BITS = …
Run Code Online (Sandbox Code Playgroud)

java encryption cryptography aes padding

2
推荐指数
1
解决办法
2万
查看次数