亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PowerShell > 正文

PowerShell 腳本中的密碼保存的方法

2020-03-26 18:52:13
字體:
來源:轉載
供稿:網友

引言

筆者在《PowerShell 遠程執行任務》一文中提到了在腳本中使用用戶名和密碼的基本方式:

$Username = 'xxxx'$Password = 'yyyy'$Pass = ConvertTo-SecureString $Password -AsPlainText -Force$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$Pass

上面的代碼僅僅是能工作而已,因為在稍有安全性要求的環境中都不會允許明文密碼的出現。本文將介紹在 PowerShell 腳本中如何以比較安全的方式使用密碼。

把密碼轉為 SecureString

先來了解下面兩個概念:

SecureStringEncrypted Standard String

SecureString 是 .net 中的一個類型,它是為了解決安全性而設計出來的一種特殊的字符串類型。比如你使用一個密碼字符串創建 SecureString 對象,你無法通過這個對象還原出原來的密碼字符串,但是卻可以把 SecureString 對象當做密碼使用。
Encrypted Standard String 是指經過加密后的一個字符串。

ConvertTo-SecureString 命令可以通過明文的字符串創建 SecureString 對象:

$SecurePwd = ConvertTo-SecureString "123456" -AsPlainText -Force

然后再使用 $SecurePwd 創建 Credential 等身份信息。這種方式就是筆者在引言部分使用的方法,這是不安全的,因為任何能夠查看腳本的人都能從中找出密碼。

把 SecureString 轉為加密字符串

通過 ConvertFrom-SecureString 命令,我們可以把一個 SecureString 對象轉換成一個 Encrypted Standard String(加密后的一個字符串),然后保存到文件中。在創建 Credential 時直接使用前面保存的文件,從而避免明文密碼在系統中出現。

$SecurePwd = ConvertTo-SecureString "123456" -AsPlainText -ForceConvertFrom-SecureString $SecurePwd

PowerShell,密碼,腳本

上圖顯示 ConvertFrom-SecureString 命令生成的加密字符串,我們把它保存到文本文件中:

ConvertFrom-SecureString $SecurePwd | Out-File "D:/pwd.txt"

看看內容:

PowerShell,密碼,腳本

好了,接下來就可以直接使用 pwd.txt 文件了。

一種看起來比較正常,也很安全的推薦用法:

 

復制代碼 代碼如下:
Read-Host "Enter Password" -AsSecureString | ConvertFrom-SecureString | Out-File "D:/pwd.txt"

 

執行這行命令,會要求你輸入密碼:

PowerShell,密碼,腳本

此處使用鍵盤輸入代替了明文的密碼字符串。

介紹了 ConvertFrom-SecureString 命令的用法后就可以介紹 ConvertTo-SecureString 命令的另外一個用法,把加密字符串轉換成 SecureString 對象:

$f = "D:/pwd.txt"$SecurePwd = Get-Content $f | ConvertTo-SecureString$SecurePwd.Length

PowerShell,密碼,腳本

這次我們把 pwd.txt 文件中的內容通過 ConvertTo-SecureString 命令重新生成 SecureString 對象。最后通過 Length 屬性檢查了密碼的長度。

下圖概括了本文中主要術語和命令的關系:

PowerShell,密碼,腳本

應用密碼的正確姿勢

下面是在腳本中使用密碼的建議做法:

# 生成并保存密碼文件Read-Host "Enter Password" -AsSecureString | ConvertFrom-SecureString | Out-File "D:/pwd.txt"# 使用密碼文件創建 Credential 信息$f = "D:/pwd.txt"$Cred = New-Object -TypeName System.Management.Automation.PSCredential `          -ArgumentList UserName, (Get-Content $f | ConvertTo-SecureString)

這種用法也有不足之處,就是只能在生成 pwd.txt 文件的機器上使用這個文件。如果把它復制到其它的機器上,執行 Get-Content $f | ConvertTo-SecureString 時就會報錯:

PowerShell,密碼,腳本

這是一種安全性限制,如果我們想在其它機器上使用 pwd.txt,就得了解些高級的用法!

高級玩法

ConvertTo-SecureString 和 ConvertFrom-SecureString 命令都支持選項 -Key。在處理密碼時通過使用 Key 選項可以提供額外的安全性,并且允許在不同的環境中使用密碼文件。

先生成 32 位的 Key 并保存在文件 AES.key 中:

$keyFile = "D:/aes.key"$key = New-Object Byte[] 32[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($key)$key | out-file $keyFile

使用 Key 生成并保存密碼文件:

 

復制代碼 代碼如下:

Read-Host "Enter Password" -AsSecureString | ConvertFrom-SecureString -key $key | Out-File "D:/pwd.txt"

 

使用密碼文件創建和 Key 文件創建 Credential 信息:

$userName = "YourUserName"$passwdFile = "D:/pwd.txt"$keyFile = "D:/aes.key"$key = Get-Content $keyFile$Cred = New-Object -TypeName System.Management.Automation.PSCredential `          -ArgumentList $userName, (Get-Content $passwdFile | ConvertTo-SecureString -Key $key)

通過這種方法,把 pwd.txt 和 aes.key 文件拷貝到其它的機器上也是可以工作的。但是我們需要額外維護一個 key 文件的安全,這一般通過設置文件的訪問權限就可以了。

總結

PowerShell 提供的安全選項使我們可以避免在腳本中直接使用明文的密碼,把密碼加密后保存在文件中的好處是可以通過文件的權限管理進行安全性控制。而使用 Key 選項則可以對上述用例進行擴展,從而支持更多的使用場景。但是帶來的不便是我們需要另外維護一個機密的 Key 文件。從這點也可以看出,所謂的安全性其實是由安全機制和用戶一起來保證的!無論多么安全的機制,在用戶泄露了認證信息的情況下都是沒有意義的。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情xxxxx| 国产精品mp4| 日韩高清有码在线| 91精品国产高清自在线看超| 国产精品爽爽ⅴa在线观看| 97视频在线观看亚洲| 久久久精品一区二区三区| 国产精品视频yy9099| 亚洲精品自在久久| 国产噜噜噜噜噜久久久久久久久| 欧美性xxxxxx| 亚洲国产成人精品久久| 丁香五六月婷婷久久激情| 亚洲永久在线观看| 久久99久久99精品中文字幕| 亚洲精品国精品久久99热一| 伦伦影院午夜日韩欧美限制| 久久大大胆人体| 日韩中文在线中文网在线观看| 国产成人精品视频| 91九色蝌蚪国产| 精品国产1区2区| 91日本在线观看| 久久综合伊人77777尤物| 亚洲福利在线播放| 国产v综合v亚洲欧美久久| 欧美电影免费看| 久久久久久久久久久国产| 日本一本a高清免费不卡| 欧美午夜片欧美片在线观看| 国产精品久久久久久久av大片| 欧美在线观看视频| 久久久欧美精品| 青青久久aⅴ北条麻妃| 亚洲第一精品夜夜躁人人躁| 亚洲欧洲日韩国产| 一区二区三区视频免费在线观看| 精品视频久久久久久| 精品国产欧美成人夜夜嗨| 欧美激情一级欧美精品| 亚洲aⅴ日韩av电影在线观看| 欧美成人精品一区二区三区| 欧美理论电影网| 欧美在线视频网站| 日本在线观看天堂男亚洲| 国产精品日日做人人爱| 中文一区二区视频| 97成人精品区在线播放| 欧美亚洲视频一区二区| 在线看日韩av| 久久久久久国产精品三级玉女聊斋| 久久久久久久999精品视频| 亚洲人成电影网站色| 中文字幕不卡在线视频极品| 国产一区二区三区毛片| 亚洲毛片在线看| 成人黄色大片在线免费观看| 国产深夜精品福利| 日韩成人xxxx| 国产精品视频在线播放| 疯狂蹂躏欧美一区二区精品| 日韩精品免费视频| 亚洲欧美自拍一区| 国产97在线视频| 北条麻妃一区二区三区中文字幕| 久久久久这里只有精品| 成人免费观看49www在线观看| 欧美国产日韩一区二区三区| 91久久久久久久一区二区| 欧美视频在线看| 亚洲成人久久久久| 国产三级精品网站| 精品国产一区二区三区久久狼5月| 中文字幕亚洲二区| 亚洲第一精品久久忘忧草社区| 亚洲欧美日韩中文视频| 久久在线精品视频| 日韩久久精品成人| 欧洲精品毛片网站| 亚洲精品丝袜日韩| 国产欧美日韩精品在线观看| 欧洲亚洲免费在线| 国产日韩在线亚洲字幕中文| 日韩激情av在线免费观看| 欧美大片欧美激情性色a∨久久| 亚洲xxxxx性| 日韩精品一区二区视频| 欧美重口另类videos人妖| 欧美激情亚洲国产| 国产日韩视频在线观看| 中文字幕亚洲一区| 精品偷拍各种wc美女嘘嘘| 欧美国产一区二区三区| 97在线观看视频| 国产精品一区二区三区久久久| 国外成人性视频| 欧美老女人性视频| 欧美综合国产精品久久丁香| 国产精品女主播| 国产精品久久久久99| 中文字幕亚洲欧美日韩高清| 日韩精品免费看| 97婷婷大伊香蕉精品视频| 久久久久久伊人| 国产精品wwwwww| 欧美有码在线观看视频| 91精品国产自产91精品| 中文字幕在线亚洲| 亚洲精品网站在线播放gif| 亚洲男人av电影| 国产一区二区在线免费| 日本免费一区二区三区视频观看| 欧美人与性动交a欧美精品| 国产精品免费视频久久久| 精品视频久久久久久| 久久成人在线视频| 在线观看日韩视频| 久久躁日日躁aaaaxxxx| 欧美大奶子在线| 午夜精品久久久久久久久久久久| 亚洲色图日韩av| 91精品国产高清自在线| 成人黄色免费在线观看| 欧美在线观看日本一区| 欧美裸体xxxx极品少妇| 国产成人激情小视频| 亚洲精品97久久| 亚洲电影免费观看高清完整版在线观看| 亚洲最新在线视频| 亚洲欧美一区二区三区久久| 三级精品视频久久久久| 中文字幕亚洲一区二区三区| 欧美成人国产va精品日本一级| 91久久久久久久一区二区| 亚洲日韩中文字幕| 欧美日韩激情小视频| 国产丝袜一区二区三区| 亚洲专区中文字幕| 一区二区福利视频| 97视频网站入口| 久久精品视频亚洲| 日产精品99久久久久久| 中文字幕在线成人| 欧洲亚洲免费视频| 国产精品爽黄69天堂a| 欧美日韩午夜激情| 成人看片人aa| 成人免费高清完整版在线观看| 日韩av在线免费观看| 国产精品久久久久久久久久| 中文字幕免费精品一区高清| 亚洲欧洲第一视频| 国产精品亚洲美女av网站| 亚洲日韩第一页| 国产欧美在线看| 91久久中文字幕| 亚洲第一网站男人都懂| 欧美亚洲国产日本| 亚洲视频在线观看视频| 成人免费视频97| 欧美色欧美亚洲高清在线视频| 欧美一级黑人aaaaaaa做受| 美女999久久久精品视频| 日本三级韩国三级久久|