【发布时间】:2015-03-27 17:34:29
【问题描述】:
我尝试了许多来自 SO 和整个网络的答案,但仍然没有成功。
我使用以下tool 进行加密。
text to encrypt: tom
key: exo123exo1exo123
input (textfield or selected file above) is: text/binary
Convert output to: [i leave this unselected]
Mode: CTR
Ciphers: Rijndael-128 and Rijndael-256
得到结果后我移动here:
并使用 base64 对其进行编码。
然后我复制字符串并将其作为参数发送到我的函数:
public String authenticate(String base64EncodedData){
byte[] input = Base64.decodeBase64(base64EncodedData);
byte[] ivBytes = "1234567812345678".getBytes();
Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding");
cipher.init(
Cipher.DECRYPT_MODE,
new SecretKeySpec("exo123exo1exo123".getBytes(), "AES"),
new IvParameterSpec(ivBytes)
);
byte[] plainText = new byte[cipher.getOutputSize(input.length)];
int plainTextLength = cipher.update(input, 0, input.length, plainText, 0);
plainTextLength += cipher.doFinal(plainText, plainTextLength);
return new String(plainText);
}
我得到的结果总是与此类似(无论我使用 Rijndael-128 还是 256 加密字符串):
.�v�Y�
当我尝试返回 input 值时 - 我得到了加密字符串。所以 base64 工作得很好。
我做错了什么?
我在这里慢慢生气。
谢谢。
【问题讨论】:
-
网站的加密方式好像不规范。没有文档说明如何使用这些参数。我找不到可重现的例子。你为什么要使用这个网站?
-
@ArtjomB。我可以使用任何其他的。最终我只是想对 Rijndael128 加密和 base64 编码字符串进行编码。您是否在任何其他网站上测试过此代码?
-
我回滚了您上次的编辑,因为它实际上无助于回答问题,因为第一个工具太糟糕了(请参阅我的回答)。同样对于未来,请不要回复答案,通过编辑您的问题说答案不起作用。更新秘密gist 中的代码,只更新真正缺失的信息。
标签: java encryption aes rijndael