在学校学习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();
}
答案 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;