繁体   English   中英

有没有办法测试字符串是否是MD5哈希?

[英]Is there a way to test if a string is an MD5 hash?

我正在尝试将包含MD5哈希值和关键字(每行一个)的文本文件输入到C#应用程序中。 有没有办法检查字符串是否是MD5哈希? 我查看了MSDN,在MD5类中找不到任何内容。

像这样使用正则表达式:

public static bool IsMD5(string input)
{
    if (String.IsNullOrEmpty(input))
    {
        return false;
    }

    return Regex.IsMatch(input, "^[0-9a-fA-F]{32}$", RegexOptions.Compiled);
}

好吧,MD5哈希实际上只是二进制数据 - 如果你有一个字符串,那么它可能以某种方式编码,例如base64或hex。 您可以测试字符串是否正确编码为正确长度的二进制(16字节)。 尽管如此 - 尽管可能存在二进制值,这些值永远不会是散列任何数据的结果,但我非常怀疑您是否可以识别这些值。 理想情况下,当然不应该有这样的价值观......

MD5哈希值是128位值。 它通常表示为长度为16的byte[] ,或者表示为每个字节由两个十六进制数字表示的string MD5哈希没有内部结构或任何类型的“签名”,允许您检测128位值是否为MD5哈希值。

如果它的32字节长和0-9 af它可能是md5,但不是100%

首先要检查文件以确定MD5哈希值是如何编码的,然后根据它设计匹配项。

我认为正确的一个是这个也包括大都会有时哈希也来自首都所以为什么错过了。

[0-9a-fA-F]{32}

要么

[0-9a-f]{32}(?i)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM