byte[] decoded = Base64.getDecoder().decode(encodedString);
GCMParameterSpec initialVector = new GCMParameterSpec(16 * 8, Arrays.copyOf(decoded, 16));
SecretKeySpec skeySpec = new SecretKeySpec(Base64.getDecoder().decode(key), "AES");
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
cipher.init(Cipher.DECRYPT_MODE, skeySpec, initialVector);
byte[] decrypted = cipher.doFinal(Arrays.copyOfRange(decoded, 16, decoded.length));
return new String(decrypted, UTF_8);
尝试为上面的代码编写等效的python代码。我有以下,但与填充特殊字符
def decrypt(ciphertext, key):
decoded_text = base64.b64decode(ciphertext)
key = base64.b64decode(key)
iv, ciphertext = decoded_text[:16], decoded_text[16:]
cipher = AES.new(key, AES.MODE_GCM, iv)
return cipher.decrypt(ciphertext)
尝试使用以下测试数据
encodedString = "828OCywY/fz6UbNgdKm6kt7Sag21tu0RJC/Xal3vStGBG9XU89w="
key = "2/2Qhzrz1+9YbvafpTaGUH3tHrxwFVwenqVQOlXyNWI="
expected = "AU5432"
but getting "b'AU5432JS\x9eG|2*&\xae\xe6 \x02\xd1\xe55e'". Tried to encode but failed
Any help please ?
让它工作-认为这可能对其他人有用
这是我不久前写的东西。有效:)
相关问题 更多 >
编程相关推荐