我有一个用于从 abcde.test.com 退订的加密电子邮件 ID。
这是在 aes-256 中加密的。其中 eid="encrypted message" 并在与 keysize 组合时删除,并且 keystr(如“6a6b663472346c38736873346569727538346234333534376635333962353666”)形成编码密钥。
现在我想解密这条消息。有人可以帮我解密吗?
我有一个用于从 abcde.test.com 退订的加密电子邮件 ID。
这是在 aes-256 中加密的。其中 eid="encrypted message" 并在与 keysize 组合时删除,并且 keystr(如“6a6b663472346c38736873346569727538346234333534376635333962353666”)形成编码密钥。
现在我想解密这条消息。有人可以帮我解密吗?
使用 Java SE 和 Apache Commons 尝试以下操作。请注意,您没有指定密码的模式或填充(只是“AES”),因此您可能需要进行一些调整。
// decode the key string into bytes (using Apache Commons)
byte[] keyBytes = Hex.decodeHex(keystr.toCharArray());
// create a representation of the key
SecretKeySpec spec = new SecretKeySpec(keyBytes, "AES");
// turn the key spec into a usable key
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("AES");
SecretKey key = keyFactory.generateSecret(spec);
// use a cipher to decrypt the eid
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] plainText = cipher.doFinal(hex.decodeHex(eid.toCharArray())); // decode from Hex again
我不知道类型eid
代表什么,所以把它变成具体的东西取决于你,但这里有一个例子:
String eid = new String(plainText, "ASCII");