因此,我试图使用密钥解密一个Csv(securestring),并将其作为数组读取,但当我使用以下命令将其解密为明文时:
securestring
$unsec = $secure | convertfrom-securestring -asplaintext
它看起来像这样的几行:
@{Num=123; RDM=abc} @{Num=456; RDM=def}
把数据解密成数组的最好方法是什么?谢谢你
h6my8fg21#
在将数据转换为SecureString之前,需要将其序列化,否则在将其转换回普通的string时,将以对象的字符串表示形式结束。应该在ConvertTo-SecureString之前使用ConvertTo-Csv。以Get-Process为例:
SecureString
string
ConvertTo-SecureString
ConvertTo-Csv
Get-Process
$csv = (Get-Process | Select-Object Name, Id | ConvertTo-Csv) -join [System.Environment]::NewLine $encrypted = $csv | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString
现在,如果你想解密$encrypted字符串,你可以:
$encrypted
$encrypted | ConvertTo-SecureString | ConvertFrom-SecureString -AsPlainText | ConvertFrom-Csv
您还应注意以下限制:SecureString示例的最大长度为65,536个字符。
1条答案
按热度按时间h6my8fg21#
在将数据转换为
SecureString
之前,需要将其序列化,否则在将其转换回普通的string
时,将以对象的字符串表示形式结束。应该在ConvertTo-SecureString
之前使用ConvertTo-Csv
。以
Get-Process
为例:现在,如果你想解密
$encrypted
字符串,你可以:您还应注意以下限制:
SecureString
示例的最大长度为65,536个字符。