【问题标题】:C# beginner error - "not all code paths return a value" [duplicate]C#初学者错误-“并非所有代码路径都返回值”[重复]
【发布时间】:2015-12-21 08:58:06
【问题描述】:

在学校学习 C# 时,我们需要制作一个用户名密码系统,为了一些额外的点,我想使用 MD5 加密,但经过一些研究,我发现通常的 md5 代码很容易破译。我想让它变得更难一些,所以想在要加密的字符串的开头和结尾添加一些字符串。问题是我得到“并非所有代码路径都返回一个值”并且不知道如何修复它。 (对不起菜鸟问题) MD5 部分有效,但我不知道为什么加密部分无效。

private string encrypt(string toEncrypt)
    {
        string step1 = MD5(toEncrypt + "example");
        string step2 = MD5("example" + step1);
        string final = MD5("example" + step2 + "example");
    }

public string MD5(string input)
    {
        //use string hash = MD5('STRING');
        //to call md5 encryption
        MD5 md5 = System.Security.Cryptography.MD5.Create();
        byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
        byte[] hash = md5.ComputeHash(inputBytes);
        StringBuilder sb = new StringBuilder();
        for(int i=0; i < hash.Length; i++)
        {
            sb.Append(hash[i].ToString("x2"));
        }
        return sb.ToString();

    }

【问题讨论】:

  • 您绝对应该在学习时考虑使用免费的 IDE 或 monodevelop 之类的 IDE——它们通常可以准确指出发生此类简单问题的位置。

标签: c#


【解决方案1】:

您忘记返回最终字符串。

private string encrypt(string toEncrypt)
{
    string step1 = MD5(toEncrypt + "example");
    string step2 = MD5("example" + step1);
    string final = MD5("example" + step2 + "example");

    return final;
}

【讨论】:

    【解决方案2】:

    在您的 encrypt 方法中,您必须返回 final 字符串。

    return final;
    

    【讨论】:

      猜你喜欢
      • 2014-06-05
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 2013-07-01
      • 2014-04-16
      • 2015-02-07
      相关资源
      最近更新 更多