-1

我有一个用于从 abcde.test.com 退订的加密电子邮件 ID。

为前: https://abcde.test.com/Forms/unSubscribe.jsp?n=2&rid=00028e7353d9c4eca480a579e10ef09b&eid=588876054d458e62779be9345f399252cac7346ad8c464b8ed0bdfbff3512dd96a5b4190c5d71c30c90c34ff39e544aa

这是在 aes-256 中加密的。其中 eid="encrypted message" 并在与 keysize 组合时删除,并且 keystr(如“6a6b663472346c38736873346569727538346234333534376635333962353666”)形成编码密钥。

现在我想解密这条消息。有人可以帮我解密吗?

4

1 回答 1

0

使用 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");
于 2012-10-11T10:08:39.633 回答