当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] ConvertFrom-SecureString (Microsoft.PowerShell.Security)

作者:精品下载站 日期:2024-12-14 02:09:42 浏览:14 分类:玩电脑

ConvertFrom-SecureString (Microsoft.PowerShell.Security)


ConvertFrom-SecureString

模块 :Microsoft.PowerShell.Security

将安全字符串转换为加密的标准字符串。

句法

ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [[-SecureKey] <SecureString>]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-AsPlainText]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-Key <Byte[]>]
                [<CommonParameters>]

描述

ConvertFrom-SecureString cmdlet 将安全字符串 (System.Security.SecureString) 转换为加密的标准字符串 (System.String)。与安全字符串不同,加密的标准字符串可以保存在文件中以供以后使用。可以使用 ConvertTo-SecureString cmdlet 将加密的标准字符串转换回其安全字符串格式。

如果使用KeySecureKey参数指定加密密钥,则使用高级加密标准(AES)加密算法。指定密钥的长度必须为 128、192 或 256 位,因为这些是 AES 加密算法支持的密钥长度。如果未指定密钥,则使用 Windows 数据保护 API (DPAPI) 来加密标准字符串表示形式。

笔记

请注意,根据 DotNet,SecureString 的内容在非 Windows 系统上未加密。

示例

示例 1:创建安全字符串

$SecureString = Read-Host -AsSecureString

此命令根据您在命令提示符处键入的字符创建安全字符串。输入命令后,键入要存储为安全字符串的字符串。显示的星号 (*) 代表您键入的每个字符。

示例 2:将安全字符串转换为加密的标准字符串

$StandardString = ConvertFrom-SecureString $SecureString

此命令将 $SecureString 变量中的安全字符串转换为加密的标准字符串。生成的加密标准字符串存储在 $StandardString 变量中。

示例 3:使用 192 位密钥将安全字符串转换为加密的标准字符串

$Key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
$StandardString = ConvertFrom-SecureString $SecureString -Key $Key

这些命令使用高级加密标准 (AES) 算法将 $SecureString 变量中存储的安全字符串转换为具有 192 位密钥的加密标准字符串。生成的加密标准字符串存储在 $StandardString 变量中。

第一个命令将密钥存储在 $Key 变量中。密钥是一个由 24 个十进制数字组成的数组,每个数字必须小于 256 才能放入单个无符号字节中。

由于每个十进制数字代表一个字节(8 位),因此密钥有 24 位数字,总共 192 位 (8 x 24)。这是 AES 算法的有效密钥长度。

第二个命令使用 $Key 变量中的密钥将安全字符串转换为加密的标准字符串。

示例 4:将安全字符串直接转换为明文字符串

$secureString = ConvertTo-SecureString -String 'Example' -AsPlainText
$secureString # 'System.Security.SecureString'
ConvertFrom-SecureString -SecureString $secureString -AsPlainText # 'Example'

参数

-AsPlainText

设置后,ConvertFrom-SecureString 会将安全字符串转换为解密的纯文本字符串作为输出。

此参数是在 PowerShell 7.0 中添加的。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Key

将加密密钥指定为字节数组。

类型 :

字节[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-SecureKey

将加密密钥指定为安全字符串。安全字符串值在用作密钥之前会转换为字节数组。

类型 :

SecureString

位置:

1

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-SecureString

指定要转换为加密标准字符串的安全字符串。

类型 :

SecureString

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

输入

安全字符串

您可以通过管道将 SecureString 对象传递给此 cmdlet。

输出

字符串

此 cmdlet 返回创建的纯文本字符串。

笔记

  • 要根据在命令提示符处键入的字符创建安全字符串,请使用 Read-Host cmdlet 的 AsSecureString 参数。
  • 使用KeySecureKey参数指定密钥时,密钥长度必须正确。例如,128 位的密钥可以指定为 16 位十进制数字的字节数组。类似地,192 位和 256 位密钥分别对应于 24 位和 32 位十进制数字的字节数组。
  • 某些字符(例如表情符号)对应于包含它们的字符串中的多个代码点。避免使用这些字符,因为它们在密码中使用时可能会导致问题和误解。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯