Python 3 中的 C# DPAPI DataProtector 等效项

C# DPAPI DataProtector equivalent in python 3

提问人:Zenek 提问时间:7/19/2022 更新时间:7/20/2022 访问量:43

问:

我有用 C# 编写的代码,用于创建 DataProtector,然后用于保护配置中的令牌

C# 代码

   //constructor code
   var appLocalDir = Directory.CreateDirectory(Path.Combine(localApplicationData, "<example_dir>"));
   var provider = DataProtectionProvider.Create(appLocalDir, builder => { builder.ProtectKeysWithDpapi(); });
   _dataProtector = provider.CreateProtector("<example_purpose>");
    
    //protector usage
    public string Token
    {
        get
        {
            try
            {
                return _dataProtector.Unprotect(_token);
            }
            catch
            {
                _token = null;
                return null;
            }
        }
        set => _token = _dataProtector.Protect(value);
    }

我需要在 python 中创建类似的保护器,以便保存 python 代码检索到的令牌以供 c# 代码使用。

有没有用于此类事情的 python 库?我需要我的 python 代码具有与 C# 代码完全相同的输出,以便使用提供的示例读取令牌

到目前为止,我找不到任何适用于 Windows 10 的解决方案。

谢谢

蟒蛇 C# DPAPI

评论


答:

0赞 Zenek 7/20/2022 #1

在检查了许多不同的解决方案后,我找到了一个适合我的解决方案。 我使用 python.NET 包加载所需的 C# .dll 文件,并在 python 代码中使用它们。