有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Python到Java加密/解密,确保密码匹配?

我正在看一些常见的python示例代码,它进行加密,设置如下:

encryptor = AES.new(key, AES.MODE_CBC, iv)
chunksize = 64*1024

while True:
    chunk = infile.read(chunksize)
    if len(chunk) == 0:
        break
    elif len(chunk) % 16 != 0:
        chunk += ' ' * (16 - len(chunk) % 16)

    outfile.write(encryptor.encrypt(chunk))

试图设置java代码来解密上面的输出,我看到了以不同方式初始化密码填充的示例:

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");

或:

Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");

尽管所有python代码段都是以相同的方式实现的

我希望在这种情况下使用“NoPadding”。有人能解释一下在这种情况下正确的选择是什么吗

多谢各位


共 (1) 个答案

  1. # 1 楼答案

    Python代码用空格(' ')填充,除非我误解了代码(不是Python的家伙)。您需要手动填充Java代码并使用"AES/CBC/NoPadding"