MachineKey.Unprotect

时间:2017-12-07 10:38:10

标签: c# encryption cryptography

我使用下面显示的保护功能收到加密操作错误,但它并不表示出现了什么问题。

当我在字节中解析时,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;
    }

0 个答案:

没有答案