我有以下 PowerShell 代码来加密我的密码:
$my_secure_password = convertto-securestring "myPW" -asplaintext -force
$my_encrypted_string = convertfrom-securestring $my_secure_password -key(1..16)
输出结果类似于
76492d1116743f0423413b16050a5345MgB8AHMASgB1AFMARwBxAFMAYgA1AFIAYwAyAE4AOABqAHMAOQBaADgAbwBGAEEAPQA9AHwANwBk................。
如何在 C# 中解密此输出以便在 C# 中将其用作 SecureString?
我尝试了以下内容,但对我没有用:
输出结果类似于
76492d1116743f0423413b16050a5345MgB8AHMASgB1AFMARwBxAFMAYgA1AFIAYwAyAE4AOABqAHMAOQBaADgAbwBGAEEAPQA9AHwANwBk................。
如何在 C# 中解密此输出以便在 C# 中将其用作 SecureString?
我尝试了以下内容,但对我没有用:
var runSpace_new = RunspaceFactory.CreateRunspace();
runSpace_new.Open();
PowerShell PSinstance = PowerShell.Create();
PSinstance.AddScript("$decrypt = convertto-securestring -key (1..16) -string 76492d1116743f0423413b.......");
var psOutput_new = PSinstance.Invoke();
var a = runSpace_new.SessionStateProxy.PSVariable.GetValue("decrypt");
但是a为空....
更新 我已经找到了解决方法:
SecureString new_sec_pass = new SecureString();
PowerShell instance = PowerShell.Create();
instance.AddScript("convertto-securestring -key (1..16) -string 76492d1...");
foreach (PSObject psOutput in instance.Invoke())
{
new_sec_pass = psOutput.BaseObject as SecureString;
}
PSCredential new_credentials = new PSCredential(Username, new_sec_pass);
Console.WriteLine(Convert.ToString(str)); Console.ReadKey(); }`
- Vitalyforeach (var result in psOutput) { Console.WriteLine(result); Console.WriteLine(Convert.ToString(result));` 两者输出结果相同:System.Security.SecureString
- user7445564