我有电话交换服务器,它记录呼叫并加密存储。我现在需要解密并转换所有对.wav文件的调用。
我可以看到它们是使用RC4算法加密的,但我无法弄清楚如何获得解密密钥。
这里" serverController.class
"来自" AgentServer.jar
:
所有记录都在两个MySQl表中排序。这是两张表中的一条记录及其对应的加密文件:
表"记录":
table" recordsdetails":
记录文件:
https://dl.dropboxusercontent.com/u/19586312/00000000000000000000
有人能帮帮我吗?如果我可以解密那个文件,那么我就会知道如何处理其他文件并尝试自动化它。
谢谢!
private byte[] getRC4Key(BigInteger paramBigInteger)
{
try
{
MessageDigest localMessageDigest = MessageDigest.getInstance("MD5");
localMessageDigest.reset();
localMessageDigest.update(ServerModel.getInstance().getConnection().getPassword().getBytes("ISO-8859-1"));
byte[] arrayOfByte = localMessageDigest.digest();
localMessageDigest.reset();
localMessageDigest.update(arrayOfByte);
localMessageDigest.update(ByteArraysUtils.BigInteger2ByteArray(paramBigInteger));
return localMessageDigest.digest();
}
catch (NoSuchAlgorithmException localNoSuchAlgorithmException)
{
LOGGER.severe(localNoSuchAlgorithmException.getMessage());
}
catch (PbxOperationException localPbxOperationException)
{
LOGGER.severe(localPbxOperationException.getMessage());
}
catch (UnsupportedEncodingException localUnsupportedEncodingException)
{
LOGGER.severe(localUnsupportedEncodingException.getMessage());
}
return null;
}
我认为如果我有一把钥匙,我就可以解密该文件了。有人会介意解释密钥的生成方式吗?
答案 0 :(得分:2)
因此它计算H(H(passwordEncoding) | paramBigIntegerEncoding)
,其中H
是MD5哈希算法,|
表示连接。您尚未向我们展示问题中BigInteger2ByteArray
的代码,因此您可能必须自行查找如何对BigInteger
进行编码。