我使用下面显示的保护功能收到加密操作错误,但它并不表示出现了什么问题。
当我在字节中解析时,MachineKey.Unprotect()
发生错误。
如果目的是“用户名”,则解析文本值为??;?W???Qzz<&???Sc??]7\\??\u001d???=?0\u007fN??g&\u001a?p?w?jJ?q?O&~c??!w???;\bv
,转换为byte[64]
我还尝试使用相同的结果从字符串/字节字节/字符串转换UTF8。
导致这种情况的原因是什么?
测试方法:
var username = PasswordStorage.Protection("wheels", "username", true);
var password = PasswordStorage.Protection("legman", "password", true);
var decodeUN = PasswordStorage.Protection(username, "username", false);
var decodePass = PasswordStorage.Protection(password, "password", false);
保护方法:
public static string Protection(string text, string purpose, bool protect)
{
try
{
if (string.IsNullOrEmpty(text))
return null;
byte[] stream = Encoding.ASCII.GetBytes(text);
var encodedBytes = new Byte[] { };
encodedBytes = protect ? MachineKey.Protect(stream, purpose) : MachineKey.Unprotect(stream, purpose);
return Encoding.ASCII.GetString(encodedBytes);
}
catch (Exception e)
{
// error logging omitted
}
return null;
}