【发布时间】: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#