LTr*_*rig 2 powershell securestring
是否可以使用System.Windows.Forms.TextBox(或任何其他方法)输入文本,然后将其转换为安全字符串?我希望能够获取输入的值,将其转换为安全字符串并将其写入一个文件,然后可以在需要时调用该文件,并且如果我们需要识别该值,则可以将安全字符串转换回来。
我研究过与此类似的内容,但由于我使用的是 TextBox 表单,所以我不想依赖 Read-Host
$secstr = Read-Host -AsSecureString "Enter your text"
$secstr | ConvertFrom-SecureString | out-file C:\temp\test.txt
$secstr = get-content c:\temp\test.txt | ConvertTo-SecureString -AsPlaintText -Force
Run Code Online (Sandbox Code Playgroud)
本质上,我想让一个文本框使用屏蔽/密码字符(我可以使用它$TextBox.PasswordChar = "*",然后获取该输入并将其转储到安全字符串文本文件中。然后,我可以使用另一个脚本来调用该文件并显示文本如果最终用户需要知道当前值,则以纯文本形式提供给他们。
如果您想将其嵌入到自定义 GUI 中,请使用 aMaskedTextBox而不是常规:TextBox
Add-Type -Assembly \'System.Windows.Forms\'\n\n$form = New-Object Windows.Forms.Form\n\n$password = New-Object Windows.Forms.MaskedTextBox\n$password.PasswordChar = \'*\'\n$password.Top = 100\n$password.Left = 80\n\n$form.Controls.Add($password)\n\n$form.ShowDialog()\nRun Code Online (Sandbox Code Playgroud)\n\n[来源]
\n\n然后将文本转换为安全字符串:
\n\n$secstr = $password.Text | ConvertTo-SecureString -AsPlaintText -Force\nRun Code Online (Sandbox Code Playgroud)\n\n如果您只想提示输入凭据,您可以使用Get-Credential,它已经将输入的密码存储为安全字符串:
\nPS C:\\> $cred = Get-Credential \n\nCmdlet Get-Credential an der Befehlspipelineposition 1\nGeben Sie Werte f\xc3\xbcr die folgenden 参数 an:\nCredential\nPS C:\\> $cred.密码\nSystem.Security.SecureString\n\n