今天,我想深入研究SecureString .NET和Powershell的概念,但我不认为,我对此非常了解。
如果我有密码并将其转换为securestring。它是在我输入时保存的吗? (加密或纯文本)。
现在,如果我将密码作为PSCredential的一部分传递给PSSession:会发生什么? PSSession是否对传递的密码运行ConvertFrom-SecureString?但是密码再次被加密。它如何知道如何将其传递给PSSesion?
答案 0 :(得分:4)
我不完全理解你的问题但得到了这个问题。如果您根据对象类型(some explanation)进行思考,这可能会更容易。
"如果我有密码并将其转换为securestring。是保存为 我进去了吗? (加密或纯文本)"
[String]
。这不加密。 [System.Security.SecureString]
。它已加密。SecureString
。 SecureString
需要密钥(以下更多信息) 方法1
这会创建一个名为SecureString
的加密 $SecurePassword
变量。未加密的密码不会使其成为内存。
$SecurePassword = Read-Host -Prompt "Enter password" -AsSecureString
方法2
这会创建未加密 String
变量$PlainPassword
,然后 SecureString
变量。
$PlainPassword = Read-Host -Prompt "Enter password"
$SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force
"现在如果我将密码作为PSCredential的一部分传递给PSSession:会发生什么?"
User
并提示输入密码,也可以传递类型为PSCredential
的对象 - 即期望安全密码。PSCredential
时,它已使用密码加密为SecureString
。SecureString
,需要密钥。密钥通常是生成的,只要两台机器具有相同的security principle,PSSession就可以完成解密(这部分我确定)SecureString
。