我有两种方法“EncodePassword”和“DecodePassword”如下:
// Pass the password as a string, then return the encoded password
string EncodePassword(string password)
{
return Convert.ToBase64String(Encoding.UTF8.GetBytes(password));
}
// Pass the encoded password, then return that as a string
string DecodePassword(string password)
{
return Encoding.UTF8.GetString(Convert.FromBase64String(password));
}
EncodePassword方法工作正常,但DecodePassword方法没有! 因此,例如当我尝试编码“testpassword”时,结果是“dGVzdHBhc3N3b3Jk”,但是当我尝试解码“dGVzdHBhc3N3b3Jk”时,结果会出现一些像“ - , ”这样的问号。 /> 请问有什么问题?
答案 0 :(得分:0)
代码按预期工作。首先加载字符串一定有问题 - 或者在处理生成的字符串时搞乱编码。
[TestMethod]
public void EncodeAndDecodePwd()
{
const string pwd = "testpassword";
string encodedPassword = EncodePassword(pwd);
string decodedPassword = DecodePassword(encodedPassword);
string decodedPassword2 = DecodePassword("dGVzdHBhc3N3b3Jk");
Assert.AreEqual(pwd, decodedPassword);
Assert.AreEqual(pwd, decodedPassword2);
Assert.AreEqual(encodedPassword, "dGVzdHBhc3N3b3Jk");
}
BR