PowerShell中实现混淆密码示例
程序员文章站
2022-03-14 08:01:23
适用于powershell 3.0或者更高版本,
尽管我们并不推荐将密码硬编码在脚本文件中,但是仍旧有一些场景非如此不可。与将密码以一种纯文本的方式硬编码相比,我们还可以...
适用于powershell 3.0或者更高版本,
尽管我们并不推荐将密码硬编码在脚本文件中,但是仍旧有一些场景非如此不可。与将密码以一种纯文本的方式硬编码相比,我们还可以稍微花点心思,把密码混淆一下。虽然混淆密码是一种非常低级的保护方式,但是对于不懂powershell的人来讲,还是比较神秘的。
接下来的脚本会向用户询问用户名和密码,然后删除通过混淆脚本进行处理,产生用户凭据对象。
当你运行了下面的脚本以后,用户凭据已经被保存在$cred。接下来你几乎可以在任何带有–credential参数的命令中使用它了。
复制代码 代码如下:
$cred = get-credential -message 'enter domain\username and password'
$pwd = $cred.password
$user = $cred.username
$key = 1..32 | foreach-object { get-random -maximum 256 }
$pwdencrypted = $pwd | convertfrom-securestring -key $key
$private:ofs = ' '
$generatedscript = @()
$generatedscript += '$password = ''{0}''' -f $pwdencrypted
$generatedscript += '$key = ''{0}''' -f "$key "
$generatedscript += '$passwordsecure = convertto-securestring -string $password -key ([byte[]]$key.split('' ''))'
$generatedscript += '$cred = new-object system.management.automation.pscredential(''{0}'', $passwordsecure)' -f $user
$generatedscript += '$cred'
$file = $psise.currentpowershelltab.files.add()
$file.editor.text = $generatedscript | out-string
$file.editor.setcaretposition(1,1)
产生的密码可能像这样:
复制代码 代码如下:
$password = '76492d1116743f0423413b16050a5345mgb8ahmauqa3afaavwb0agkauqbuac8adwbqadyauabvafyauwb4aeyaygb4afeapqa9ahwazga0adgaoqa4agyanwa0ageamaa0aduanwa5adkamwa5adkamwa1aduanqa0agyanwa5agqanwbkagyaoqbmageayqa3admaygbkadiaoqa3agmayqbmaduamga3adeanwa3ageaygbmadaayga1agyaywayadyaygazadkaoaa='
$key = '187 98 34 82 148 52 13 86 246 2 130 197 217 97 147 98 75 197 149 246 74 35 27 7 211 15 131 93 182 231 171 3'
$passwordsecure = convertto-securestring -string $password -key ([byte[]]$key.split(' '))
$cred = new-object system.management.automation.pscredential('mickey\mouse', $passwordsecure)
$cred
下一篇: Powershell中打开网页实例