gpt4 book ai didi

.net - ProtectedData.Unprotect 方法解密失败

转载 作者:行者123 更新时间:2023-12-02 03:48:32 24 4
gpt4 key购买 nike

我们有一个构建过程,需要解密密码,然后使用该密码连接到数据库。我们使用数据保护 API (DPAPI) 通过 PowerShell 在构建服务器上的计算机范围内加密密码(我使用自己的域帐户登录):

[Security.Cryptography.ProtectedData]::Protect( $passwordBytes, $null, [Security.Cryptography.DataProtectionScope]::LocalMachine );

解密也是在 PowerShell 脚本中完成的,该脚本由 CruiseControl.NET 执行,以我们的构建用户身份运行:

 [Security.Cryptography.ProtectedData]::Unprotect( $encryptedbytes, $null, [Security.Cryptography.DataProtectionScope]::LocalMachine );

但是,对 Unprotect 的调用失败,并显示以下消息:“ key 在指定状态下使用无效。”。 According to the docs ,使用模拟时可能会发生此错误,并且模拟代码应加载用户的个人资料。

出于安全目的,构建用户被拒绝通过终端服务登录的权利。为了测试这个问题,我以自己的身份登录到构建服务器,然后使用 runas 以构建用户的身份打开 PowerShell 提示符:

runas /profile /user:DOMAIN\BUILDUSER powershell.exe

然后,我运行 PowerShell 脚本来取消保护/解密密码,并得到相同的错误。

我用了Process Monitor监视任何失败或访问被拒绝的事件,但没有任何失败或访问被拒绝的事件。

当我使用自己的域帐户登录时,我能够解密密码。

发生什么事了?我的构建用户的配置文件未加载吗?是否有一些我不知道的安全设置可以启用此功能?为什么我无法解密密码?

最佳答案

开发者错误。事实证明我是在 CurrentUser 范围而不是 LocalMachine 范围进行加密。我更新了脚本,现在一切正常。

关于.net - ProtectedData.Unprotect 方法解密失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6219520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com