Ⅰ 如何用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上直接运行没问题。