Ⅰ 如何用shell腳本對文件內容加密
使用OPENSSL命令吧
Plain Text code?
1
2
3
4
5
#加密
openssl enc -e -aes-256-cbc -in 要加密的文件 -out 要解密的文件 -pass pass:密碼
#解密
openssl enc -d -aes-256-cbc -in 要解密的文件 -out 要加密的文件 -pass pass:密碼
Ⅱ 如何給PowerShell腳本加密
適用於Powershell3.0及以後版本。假設你需要給文件加密,下面教你如何給自己的文件加密:
$Path = "$env:temp\secret.txt"
$Secret = 'Hello World!'
$Passphrase = 'Some secret key'
$key = [Byte[]]($Passphrase.PadRight(24).Substring(0,24).ToCharArray())
$Secret |
ConvertTo-SecureString -AsPlainText -Force |
ConvertFrom-SecureString -Key $key |
Out-File -FilePath $Path
notepad $Path
當你需要解密出裡面的內容,這時就需要最初的密碼:
$Passphrase = Read-Host 'Enter the secret pass phrase'
$Path = "$env:temp\secret.txt"
$key = [Byte[]]($Passphrase.PadRight(24).Substring(0,24).ToCharArray())
$cred = New-Object -TypeName System.Management.Automation.PSCredential('mmy', $decryptedTextSecureString)
$decryptedText = $cred.GetNetworkCredential().Password
Ⅲ shell腳本是否可以編譯,封裝,加密
SHELL腳本是被/bin/sh執行的,如果加密,自然/bin/sh無法解析。
但也有方法可以達到你的目的,你講SHELL加密,寫一個可執行文件,可執行文件解密你的SHELL,然後fork進程去執行你的SHELL文件。
Ⅳ 如何給powershell腳本加密
適用於Powershell3.0及以後版本。
假設你需要給文件加密,下面教你如何給自己的文件加密:
$Path="$env:tempsecret.txt"
$Secret='HelloWorld!'
$Passphrase='Somesecretkey'
$key=[Byte[]]($Passphrase.PadRight(24).Substring(0,24).ToCharArray())
$Secret|
ConvertTo-SecureString-AsPlainText-Force|
ConvertFrom-SecureString-Key$key|
Out-File-FilePath$Path
notepad$Path
當你需要解密出裡面的內容,這時就需要最初的密碼:
$Passphrase=Read-Host'Enterthesecretpassphrase'
$Path="$env:tempsecret.txt"
$key=[Byte[]]($Passphrase.PadRight(24).Substring(0,24).ToCharArray())
try
{
$decryptedTextSecureString=Get-Content-Path$Path-Raw|
ConvertTo-SecureString-Key$key-ErrorActionStop
$cred=New-Object-TypeNameSystem.Management.Automation.PSCredential('mmy',$decryptedTextSecureString)
$decryptedText=$cred.GetNetworkCredential().Password
}
catch
{
$decryptedText='(wrongkey)'
}
"Thedecryptedsecrettext:$decryptedText"
Ⅳ 在Powershell腳本中安全的使用密碼信息
在使用基於Powershell自動化的腳本中,大多數場景下需要未腳本傳遞憑據以供驗證環節能夠正常工作,很多管理員習慣於在他們的腳本中使用明文密碼,但如果是測試腳本,倒是無關緊要,若是用於生產環境的腳本,這種行為不但很糟糕,還很可怕,不懷好意的同志們會很樂意並輕松的拿到它然後搞一些或輕或重的破壞。但是,如果正確使用powershell所提供的密碼加密功能,能很輕松的解決這個問題。
PowerShell中,提供了兩種生成憑據的方式分別是 Get-Credential 和 Read-Host
Get-Credential
Get-Credential 命令被用來創建PSCredential對象並且將之存儲到變數中,並保證不在屏幕上顯示如下
上面的命令將憑據信息保存到變數 $crd 中 ,這個變數可被很容易的用於訪問需指定憑據的 Cmdlets
Read-Host
使用 Read-Host 同樣可以起到保護明文密碼顯示的功能 如下, -AsSecureString 可以將明文密碼存儲成加密密碼串對象,SecureString對象可被用於可接受該類型參數的命令,可以通過定義變數和管道輸出將該對象傳遞給命令。
ConvertTo-SecureString
ConvertTo-SecureString 用於加密密碼和其它字元串,它可以接受字元串然後輸出為SecureString對象,SecureString對象可被用於可接受該類型參數的命令,可以通過定義變數和管道輸出將該對象傳遞給命令。
語法如下:
當不適用參 -Key 或者 -SecureKey 時,PowerShell將會調用 Windows Data Protection API (DPAPI) 加密解密字元串。但這將導致生成的 SecureString 對象在其它計算機上使用。
如下將把明文"Password"轉化為 SecureString
這種方式雖然能夠將明文字元轉換為 SecureString 對象,但是卻無法將其存儲為一個文件以後用。必須把它轉化為標准加密字元串才可以,要達到這個目的,要用到 ConvertFrom-SecureString 命令。
ConvertFrom-SecureString
使用 ConvertFrom-SecureString 命令可以將 SecureString 對象存儲成為標准加密字元串,可以將 SecureString 對象或者命令產生的 SecureString 對象通過管道傳給它來實現
語法:
上面的例子產生的 SecureString 對象可以用於此處轉換成標准加密字元串
結合上面幾個命令,我們可以有以下幾種方法將 SecureString 轉換成的標准加密字元串通過 Out-File 命令存儲成txt文件
導出純文本模式生成的 SecureString 對象
導出 Get-Credential 產生的 SecureString 對象
導出通過 Read-Host 產生的 SecureString 對象
將上述存儲的標准加密字元串文件轉換回 SecureString 並用來創建 PSCredential
上面提到,在使用 ConvertTo-SecureString 和 ConvertFrom-SecureString 加密憑據時,如不使用 -Key 或 -SecureKey ,則PowerShell會調用DPAPI進行加解密,因為無法再創建其之外的機器上使用,如下
同一台主機
不同主機上使用上面同一個txt文件
使用 Key 或者 SecureKey 實現跨機器使用加密文件
使用 -Key 參數創建保存標准加密字元串的文件,下面將會用到Windows Class 「System.Security.Cryptography.RNGCryptoServiceProvider"來創建隨機數據來填充作為 -Key 的參數值的數組
使用隨機數據來創建AES key並導出為文件
創建 SecureString 對象
創建憑據
在另外的機器上
上面的內容已經完全可以幫助我們在powershell腳本中來加密密碼了,如果有其它問題歡迎留言。
Ⅵ shell腳本可以加密嗎
第一種方法(gzexe):
這種加密方式不是非常保險的方法,但是能夠滿足一般的加密用途,可以隱蔽腳本中的密碼等信息。它是使用系統自帶的gzexe程序,它不但加密,同時壓縮文件。
使用方法: gzexe file.sh
它會把原來沒有加密的文件備份為file.sh~ ,同時 file.sh 即被變成加密文件;
第二種方法(shc):
使用 shc 對 linux shell 腳本加密.
shc是一個專業的加密shell腳本的工具.它的作用是把shell腳本轉換為一個可執行的二進制文件,這個辦法很好的解決了腳本中含有IP、密碼等不希望公開的問題.
Ⅶ linux的shell腳本,如何使用vi批量加密
vi是不能加密的哦,不夠可以使用其他程序進行加密的呢
這個需要編寫一個shell來加密文件的。
那就先看一下喔的網名吧, 然後++上啊,私聊給解決一下
Ⅷ 求shell腳本加密方式,要許可權那種,即是解密也要許可權,謝謝。 gzexe、shc等方法試過了。
shell腳本純粹就是由各種命令組成的文本文件,由shell環境解釋執行,沒法加密。即便你加了密,也必須還原成文本格式,才能由shell執行。
Ⅸ 手機shell腳本加密後不能運行
看一下腳本內容是否正確,運行的方式是否正確。
可以採取兩種方式進行運行:
一、 $ sh test 一般不採用這種調用方式,尤其不採用「sh
1、test(如果命令檢索路徑包含當前目錄)
2、./test(如果命令減縮路徑不包含當前目錄) *說明: sh test 方式調用一個shell叫蹦可能會禁止某些shell特定的擴展功能,因而可能引起腳本無法正確執行。
Ⅹ 如何還原使用shc加密的shell腳本
Shc可以用來對shell腳本進行加密,可以將shell腳本轉換為一個可執行的二進制文件。經過shc對shell腳本進行加密後,會同時生成兩種個新的文件,一個是加密後的可執行的二進制文件(文件名以.x結束),另一個是C語言的原文件(文件名以.x.c結束)。
下面就說明一下shc的安裝,參數,以及使用示例:
復制代碼 代碼如下:
# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
# cd shc-3.8.7
# make
# make install
(僅用make就可以完成安裝,運行shc時要指出絕對路徑;用make install,將shc安裝到/usr/local/bin下,可以直接運行)
常用參數:
復制代碼 代碼如下:
-e date
Expiration date in dd/mm/yyyy format [none](指定過期日期)
-m message
message to display upon expiration ["Please contact your provider"](指定過期提示的信息)
-f script_name
File name of the script to compile(指定要編譯的shell的路徑及文件名)
-r Relax security.
Make a redistributable binary which executes on different systems running the same operat-ing system.(可以相同操作系統的不同系統中執行)
-v Verbose compilation(編譯的詳細情況)
使用示例:
復制代碼 代碼如下:
[root@centos54 tmp]# /usr/local/src/shc-3.8.7/shc -e 20/10/2010 -m "lianxi [email protected]" -v -r -f ./ex.sh
-e:指定過期時間為2010年10月20日
-m:過期後列印出的信息;
-v: verbose
-r: 可在相同操作系統的不同主機上執行
-f: 指定源shell
方法:
復制代碼 代碼如下:
shc -r -f script-name
注意:要有-r選項, -f 後跟要加密的腳本名.
運行後會生成兩個文件,script-name.x 和 script-name.x.c
script-name.x是加密後的可執行的二進制文件.
./script-name.x 即可運行.
script-name.x.c是生成script-name.x的原文件(c語言)
說明:
經我測試,相同在操作系統,shc後的可執行二進制文件直接可以移植運行,但不同操作系統可能會出現問題,如我將源shell在CentOS5.4上加密後移到redhat as5u4上不能運行,出現「Floating point exception」錯誤提示,但移到另一台CentOS5.4上直接運行沒問題。