- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个模块,其中包含一些字符串和一些应该很难获得但经常更改的私有(private)数据。我需要将此脚本放在可能访问它的各种机器上,以及由不应该拥有用于导出输出的信息的人读取代码的地方。
我真的很担心不时更改的字符串,因此我正在考虑创建一个脚本,提示输入这些值作为安全字符串并使用 key 加密它们并将它们转储到 xml 文件中。然后使用 XML 文件提供字符串。任何从该模块运行需要该数据的命令的人都必须提供 key ,以便可以解密字符串。
这基本上是我期望做的,但我将处理对象
$secure = Read-Host -AsSecureString
$encrypted = ConvertFrom-SecureString -securestring $secure -key somekey
$encrypted | Export-Clixml testing.xml
$imported = Import-Clixml testing.xml
$value = ConvertTo-SecureString -string $imported -key somekey
我知道该字符串将使用 Rijndael 加密算法进行加密,我认为该算法也称为 AES。
如果可以访问脚本,需要多少努力才能破解位于 xml 文件中的加密 key ?
最佳答案
然后加密的 secret 字符串本身是安全的,但它可能无法以这种形式使用。 ConvertTo-SecureString
会将其从加密的标准字符串转换为 SecureString
,但为此,您需要 key 。如果您的用户或脚本拥有 key ,那么他们就可以做任何事情。
您甚至可以将 SecureString
传递给您正在使用的任何应用程序,还是需要将其转换回常规字符串?如果 secret 数据在任何时候都是明文形式,那么您的用户就可以看到它。
即使您的应用程序支持 SecureString
,您仍然会遇到麻烦,因为 SecureString
很容易破解:
[System.Runtime.InteropServices.Marshal]::PtrToStringAuto(
[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($securestring)
)
用一些 key 加密 secret 数据,但允许低权限用户拥有 key 的方法被破坏了。这相当于“我不想让我的 friend 拿到我家的 key ,所以我会把 key 锁在一个盒子里,然后把盒子的 key 给他。”
关于security - PowerShell 的 ConvertFrom-SecureString -key 有多安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12520006/
下面的test2和test3结果是不同的。 我对此感到困惑,因为它看起来像相同的逻辑,并且与linux bash ||逻辑不同。 $data = @( [PSCustomObject]@{St
在转换大小超过2MB的JSON字符串时,使用PowerShell v3时出现问题。 PowerShell使用的JSON序列化程序的默认限制设置为2MB,这说明了错误。 但是,当我在较小的集合上使用Co
我只是尝试使the scripting guy's example适应从文本文件读取数据并使用ConvertFrom-StringData解析哈希表: $PSVersionTable.PSVersio
我正在获取服务器的固件信息,并将其存储在变量$t中,但它以字符串的形式出现。我已经(几乎)成功地将其结构化为一个对象,以便将其导出为CSV,但是我需要一些帮助。 目前,我的主要问题是,似乎使用Conv
我正在加载一个包含一些Json的文本文件来编辑属性。但是,修改内容并将其写入文件后,Json变得无效。 我使用以下PowerShell修改文件: $manifest = Get-Content $Pa
尝试发送api请求并遍历响应,但是似乎我的响应没有反序列化到对象。 这是我在invoke-Webrequest之后得到的响应: {"isSuccess": true, "value": null, "
使用学生文本名称 Infinity 执行以下代码将返回无穷大符号而不是实际文本。任何人都可以解释为什么会这样以及可以做些什么来纠正。 $person="Infinity,One" $personspl
我的Powershell脚本中有此代码,在特殊字符部分上效果不佳。 $request = 'http://151.80.109.18:8082/vrageremote/v1/session/play
我在使用 Convertfrom-String cmdlet 时遇到问题 $value = 'something:009' $value | ConvertFrom-String -Delimiter
我有一个看起来像这样的json文件(test.json): { "root": { "key":"value" } } 我正在使用类似这样的东西将其加载到pow
This question already has an answer here: Not all properties displayed (1个答案) 12个月前关闭。 以下声明 '[{"A":1
我正在尝试解析以下 JSON: StatusCode : 0 StatusDescription : Content : {123, 10, 32, 32...} R
使用Powershell命中Web服务,并使用ConvertFrom-Json将响应转换为对象。但是,该对象是使用无法从Powershell代码访问的属性名称创建的。 如何访问属性的属性值?我什至不应
考虑以下 json 负载(只是“az 组列表”中的示例片段): [ { "id": "/subscriptions/1f512sf9-112c-4a7a-a580-665afe
为什么以下两个片段会产生不同的输出? Get-Content -Raw "test.json" | ConvertFrom-Json | %{ Write-Output "MessageTyp
我正在编写一个需要解析JSON的脚本,并且在某些文件中出现错误。错误的原因是无效的JSON,这很好,但是我希望能够检测到该错误并在脚本中处理它。好像ConvertFrom-Json不支持-ErrorA
我正在PowerShell中处理JSON文件,似乎ConvertFrom-Json仅在某些(很少)情况下更改其输入的大小写。 例如,当我这样做时: $JsonStringSrc = '{"x":2.2
我对 PowerShell 还很陌生,并且有以下代码: $jsonResponse = @" { "departments":[{"id":81,"department":"Sales"},{"id"
看起来我期望的工作方式并没有实现。我想要返回多个对象,但它似乎只返回一个。我无法做到这一点。 一个非常简单的 JSON 文件: { "$schema": "https://schema.manag
似乎我忽略了一些简单的事情,但我继续在几种不同的解析文本文件的方法上出错。 (在下面的代码中,我使用文本变量而不是文件。)我错过了什么? 要解析的文本(模拟 TXT 数据文件)是: $testText
我是一名优秀的程序员,十分优秀!