-2

我有一个包含 700,000 个 MD5 病毒特征码的数据库,格式如下:

83968:961ed981485cea5ab3936496966ba0d6:Worm.Gaobot-318
86016:4bed8673ab3d695c52c233306ed3f733:Worm.Gaobot-319

有没有办法将 Md5 校验和转换为有效的十六进制签名?
如果是这样,我将如何(使用 VB.net)将 md5 校验和转换为十六进制,删除第一83968:件事并将名称保留为相同的格式?

所以最终产品看起来像:

{valid hex signature} :Worm.Gaobot-318
4

4 回答 4

1

您的“有效十六进制签名”不是 MD5 哈希 - 它太长了。MD5 产生 16 个字节,因此 32 个十六进制字符......您的 Eicar 示例是 80 个字符(40 个字节)。

您首先没有指定使用什么算法来提出“有效的十六进制签名”,但是假设那里没有冗余,您根本没有足够的信息来生成它。这就像在你只知道每个演讲的第一个字的情况下问如何制作剧本的概要。

于 2011-02-12T17:13:40.483 回答
1

我明白你在说什么。您已经从 Clam 数据库中收集了大量 MD5 病毒。但是后来你才知道 MD5 不是好的签名,但是十六进制的签名是好的。现在您想将 MD5 转换为十六进制。这是不可能的。您可以计算给定字符串的 MD5,但无法从给定 MD5 中取回字符串。

快乐编码!

于 2011-06-19T03:36:38.517 回答
1
$string fullStr = "83968:961ed981485cea5ab3936496966ba0d6:Worm.Gaobot-318 ";
$string name = fullStr.Split(":")[2];
$string md5 = fullStr.Split(":")[1];

这将为您提供不带“83968”或“:”的名称和 md5

于 2011-08-24T19:07:36.003 回答
0

看起来您的 MD5 值已经以十六进制格式表示。所以你在这方面很好。唯一剩下的就是在“:”字符上拆分字符串。假设这是您的格式:

83968:961ed981485cea5ab3936496966ba0d6:Worm.Gaobot-318

这是一些 C# 伪代码....

string fullStr = "83968:961ed981485cea5ab3936496966ba0d6:Worm.Gaobot-318 ";
string arr[] = fullStr.Split(":");
for(int i=0; i<arr.length; i++)
{
    Console.WriteLine(arr[i]);
}
于 2011-02-12T21:57:57.547 回答