Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在visual studio中用c#测试md5_C#_Visual Studio 2010_Md5 - Fatal编程技术网

如何在visual studio中用c#测试md5

如何在visual studio中用c#测试md5,c#,visual-studio-2010,md5,C#,Visual Studio 2010,Md5,只是想问一下,是否有人知道如何在VisualStudio中测试这个md5 这是我的md5 using System; using System.Security.Cryptography; using System.Text; class Example { // Hash an input string and return the hash as // a 32 character hexadecimal string. static string getMd

只是想问一下,是否有人知道如何在VisualStudio中测试这个md5

这是我的md5

   using System;
using System.Security.Cryptography;
using System.Text;

class Example
{
    // Hash an input string and return the hash as
    // a 32 character hexadecimal string.
    static string getMd5Hash(string input)
    {
        // Create a new instance of the MD5CryptoServiceProvider object.
        MD5 md5Hasher = MD5.Create();

        // Convert the input string to a byte array and compute the hash.
        byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));

        // Create a new Stringbuilder to collect the bytes
        // and create a string.
        StringBuilder sBuilder = new StringBuilder();

        // Loop through each byte of the hashed data 
        // and format each one as a hexadecimal string.
        for (int i = 0; i < data.Length; i++)
        {
            sBuilder.Append(data[i].ToString("x2"));
        }

        // Return the hexadecimal string.
        return sBuilder.ToString();
    }

    // Verify a hash against a string.
    static bool verifyMd5Hash(string input, string hash)
    {
        // Hash the input.
        string hashOfInput = getMd5Hash(input);

        // Create a StringComparer an compare the hashes.
        StringComparer comparer = StringComparer.OrdinalIgnoreCase;

        if (0 == comparer.Compare(hashOfInput, hash))
        {
            return true;
        }
        else
        {
            return false;
        }
    }


    static void Main()
    {
        string source = "Hello World!";

        string hash = getMd5Hash(source);

        Console.WriteLine("The MD5 hash of " + source + " is: " + hash + ".");

        Console.WriteLine("Verifying the hash...");

        if (verifyMd5Hash(source, hash))
        {
            Console.WriteLine("The hashes are the same.");
        }
        else
        {
            Console.WriteLine("The hashes are not same.");
        }

    }
}
// This code example produces the following output:
//
// The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c.
// Verifying the hash...
// The hashes are the same.
使用系统;
使用System.Security.Cryptography;
使用系统文本;
课例
{
//对输入字符串进行散列,并将散列返回为
//32个字符的十六进制字符串。
静态字符串getMd5Hash(字符串输入)
{
//创建MD5CryptoServiceProvider对象的新实例。
MD5 md5Hasher=MD5.Create();
//将输入字符串转换为字节数组并计算哈希。
byte[]data=md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
//创建新的Stringbuilder以收集字节
//并创建一个字符串。
StringBuilder sBuilder=新StringBuilder();
//循环遍历散列数据的每个字节
//并将每个字符串格式化为十六进制字符串。
for(int i=0;i
打开Visual Studio…新建控制台应用程序…粘贴该代码(替换现有页面)并按CTRL+F5。按CTRL+F5,控制台窗口将保持打开状态


当然,复制和粘贴代码只能让您了解它的工作原理和作用;)

打开Visual Studio…新建控制台应用程序…粘贴该代码(替换现有页面)并按CTRL+F5。按CTRL+F5,控制台窗口将保持打开状态


当然,复制和粘贴代码只能让您了解它的工作原理和作用;)

RFC提供了一些您可以测试的选项:

MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") =
d174ab98d277d9f5a5611c2c9f419d9f
MD5 ("123456789012345678901234567890123456789012345678901234567890123456
78901234567890") = 57edf4a22be3c955ac49da2e2107b67a

RFC提供了一些您可以测试的选项:

MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") =
d174ab98d277d9f5a5611c2c9f419d9f
MD5 ("123456789012345678901234567890123456789012345678901234567890123456
78901234567890") = 57edf4a22be3c955ac49da2e2107b67a

md5类提供一个16字节长的散列,如果您试图将此散列作为字符串查看,则需要使用System.Text.Encoding命名空间并将文本转换为字符串值。至于测试MD5,如果不是16字节长,我会说函数失败了

md5类提供了一个16字节长的散列,如果您试图将此散列作为字符串查看,则需要使用System.Text.Encoding命名空间并将文本转换为字符串值。至于测试MD5,如果不是16字节长,我会说函数失败了

这将以循环方式测试
ComputeHash(x)==ComputeHash(x)
。目的是。。。含糊不清。您的意思是您确实想要测试该值,还是想知道如何在Visual Studio中运行此代码?这段代码取自MSDN,所以它可能非常健壮。这将以一种循环的方式测试
ComputeHash(x)==ComputeHash(x)
。目的是。。。含糊不清。您的意思是您确实想要测试该值,还是想知道如何在Visual Studio中运行此代码?这段代码取自MSDN,所以它可能非常健壮。