gpt4 book ai didi

powershell - ConvertTo-SecureString 没有 -AsPlainText -Force

转载 作者:行者123 更新时间:2023-12-04 01:31:09 24 4
gpt4 key购买 nike

PSScriptAnalyzer 有一个 PSAvoidUsingConvertToSecureStringWithPlainText 警告。这意味着使用以下代码将失败。

$password = [System.Web.Security.Membership]::GeneratePassword(128,0)
$securePassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$configCredential = New-Object System.Management.Automation.PSCredential ($username,$securePassword)

但是,关于如何在没有 -AsPlainText -Force 选项的情况下将常规字符串转换为安全字符串的指南很少(/无)。 (我确实了解常规字符串的安全含义)

我怎样才能安全地实现上述目标/不惹恼 PSScriptAnalyzer(我不想压制消息)

最佳答案

我不太清楚你在问什么,但我会回答我对你的问题的不同解释。

“如何在没有 ConvertTo-SecureString 的情况下为 PSCredential 生成密码?”

您可以将常规字符串直接传递给构造函数,它会在内部将其转换为 SecureString。

$password = [System.Web.Security.Membership]::GeneratePassword(128,0)
$configCredential = New-Object PSCredential ($username, $password)

但是,使用 SecureString 值时的最佳做法是首先永远不要以明文形式使用 secret 值 - 这就是您必须指定 -Force 的原因。与 -AsPlainText ,也可能也是为什么 PSScriptAnalyzer 规则首先存在的原因,是为了阻止这种做法。如果您依靠 SecureString 的安全性来缓解威胁,您应该遵循这种温和的强制措施,避免使用明文 $password多变的:
$configCredential = New-Object PSCredential ($username, [System.Web.Security.Membership]::GeneratePassword(128,0))

“如何在不跳闸或抑制 PSScriptAnalyzer 错误的情况下将字符串转换为安全字符串?”

如果你不关心凭证对象本身,但想要一个 SecureString 而不使用 ConvertTo-SecureString ,您仍然可以(ab)为此目的使用 PSCredential 类。一个更容易阅读的例子:
$password = [System.Web.Security.Membership]::GeneratePassword(128,0)
$configCredential = New-Object PSCredential ($username, $password)
$securePassword = $configCredential.Password

遵循最佳实践的单行:
$securePassword = New-Object PSCredential ($username, [System.Web.Security.Membership]::GeneratePassword(128,0)) | Select-Object -ExpandProperty Password

您还可以将字符串拆分为字符,并将它们一一附加到 SecureString 中:
$securePassword = New-Object SecureString
foreach ($char in [System.Web.Security.Membership]::GeneratePassword(128,0).ToCharArray()) {
$securePassword.AppendChar($char)
}

关于powershell - ConvertTo-SecureString 没有 -AsPlainText -Force,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39844159/

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