C#初学者错误 - “并非所有代码路径都返回值”

时间:2015-09-23 21:26:35

标签: c#

在学校学习C#时,我们需要建立用户名 - 密码系统,对于一些额外的点我想使用MD5加密,但经过一些研究后我发现通常的md5代码很容易破译。我想让它变得更难,所以想要在要加密的字符串的开头和结尾添加一些字符串。问题是我得到“并非所有代码路径返回值”并且不确定如何修复它。 (对不起noob问题) 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();

    }

2 个答案:

答案 0 :(得分:3)

你忘了归还最后一根字符串。

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

    return final;
}

答案 1 :(得分:0)

加密方法中,您必须返回最终字符串。

return final;