[TOC]
## 1、vi/vim加密文件内容
vim gt-1.sh
输入:X
注意是大写的X
![](https://img.kancloud.cn/a6/56/a6566c7f73a2434ac439025b5bcc7752_417x383.png)
![](https://img.kancloud.cn/07/11/071148d54859a8a670f0ec87b18f0ae1_337x359.png)
` `用cat或more查看文件内容,显示为乱码;用vi重新编辑这个文件,会提示输入密码,如果输入的密码不正确,同样会显示为乱码!
注意:文件加密后,千万别忘了密码!
` `解密用vim加密的文件(前提是你知道加密的密码):
* 用vim打开文件如text.txt,要输入正确的密码,然后在编辑时,将密码设置为空,方法是输入下面的命令:
:set key=
然后直接回车,保存文件后,文件已经解密了。
* 或者这样也行:
在正确打开文件后用 “:X” 指令,然后给一个空密码也可以。
两种方法实际上效果是一样的。
## 2.使用shc加密shell脚本
` `采用shc工具加密Shell脚本,以提高shell脚本文件的安全性。
` `介绍:当我们写的shell脚本,存在有敏感信息如账号密码,于是想加强脚本的安全性;还有不想让别人查看/修改您的shell核心代码等等情况。都可使用以下工具进行加密。
` `shc是一个脚本编译工具, 使用RC4加密算法, 它能够把shell程序转换成二进制可执行文件(支持静态链接和动态链接)。
` `shc官网:http://www.datsi.fi.upm.es/%7Efrosal/
安装shc
```
wget [http://www.datsi.fi.upm.es/%7Efrosal/sources/shc-3.8.7.tgz](http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz)
tar vxf shc-3.8.7.tgz
cd shc-3.8.7
make test
make strings
make install
若报错:
*** Installing shc and shc.1 on /usr/local
*** ?Do you want to continue? y
install -c -s shc /usr/local/bin/
install -c -m 644 shc.1 /usr/local/man/man1/
install: target `/usr/local/man/man1/' is not a directory: No such file or directory
make: ** \[install\] Error 1
请创建 mkdir -p /usr/local/man/man1/ ,然后运行make install
```
` `deepin可以使用`sudo apt-get install shc`进行安装。
常用参数:
* -e date (指定过期日期)
* -m message (指定过期提示的信息)
* -f script\_name(指定要编译的shell的路径及文件名)
* -r Relax security. (可以相同操作系统的不同系统中执行)
* -v Verbose compilation(编译的详细情况)
使用方法:
```
shc -v -f abc.sh
```
> -v 是现实加密过程
-f 后面跟需要加密的文件
运行后会生成两个文件:
abc.sh.x 和 abc.sh.x.c
abc.sh.x为二进制文件,赋予执行权限后,可直接执行。更改名字mv abc.sh.x a.sh
abc.sh.x.c 是c源文件。基本没用,可以删除.
` `**另shc还提供了一种设定有效执行期限的方法,过期时间,如:**
```
shc -e 28/01/2012 -m "过期了" -f abc.sh
```
` `选项“-e”指定过期时间,格式为“日/月/年”;选项“-m”指定过期后执行此shell程序的提示信息。
如果在过期后执行,则会有如下提示:
```
# ./abc.sh.x
./abc.sh.x: has expired!
```
过期了
### 加密脚本
```
# shc -v -r -f mysql_backup.sh
```
` `-v: 是verbose模式,输出更详细编译日志. -f: 指定脚本的名称.
```
上面命令在屏幕上的输出:
shc shll=sh
shc [-i]=-c
shc [-x]=exec ‘%s’ “$@”
shc [-l]=
shc opts=
shc: cc mysql_backup.sh.x.c -o mysq_backup.sh.x
shc: strip mysql_backup.sh.x
shc: chmod go-r mysql_backup.sh.x
```
` `我们可以看到生成了动态链接可执行二进制文件mysql\_back.sh.x和C源文件mysql\_backup.sh.x.c, 注意生成的二进制文件因为是动态链接形式, 所以在其它平台上不能运行:
```
mysql_backup.sh.x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
```
### 生成静态链接的二进制可执行文件
` `我们可以通过下面的方法生成一个静态链接的二进制可执行文件:
```
# CFLAGS=-static shc -r -f mysql_backup.sh
# file mysql_backup.sh.x
mysql_backup.sh.x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
statically linked, for GNU/Linux 2.6.9, stripped
```
` `提示: 通过sch加密后的脚本文件很安全吗?
` `一般来说是安全的, 不过可以使用gdb和其它的调试工具获得最初的源代码. 如果你需要更加安全的方法, 可以考虑使用wzshSDK.
` `另外, sch还可以设置脚本的运行期限和自定义返回信息:
```
shc -e 03/31/2007 -m “the mysql backup script is now out of date.” -f mysql_back.sh
```
` `-e表示脚本将在2007年3月31日前失效, 并根据-m定义的信息返回给终端用户.
### 无法执行问题
` `使用该工具有时会遇到生成的脚本无法执行的情况,提示“Operation not permitted”。这时需要对生成的*.c文件进行修改,再重新编译。比如有test.sh脚本需要加密:
```
1、./shc -v -r -f test.sh,生成test.x、test.x.c文件
2、修改test.x.c文件,删除图中所示部分。
```
![](https://img.kancloud.cn/60/e0/60e05946af34ed5baa52004266c333c8_365x260.png)
```
3、gcc -o test.x test.x.c 重新编译生成test.x文件。
```
## 设置打开文件需要root输入密码
` ` inux 如何设置打开文件或目录需要root权限?一旦双击,就提示需要 root权限打开。
```
sudo chown root:root /home/public
sudo chmod -R 700 /home/public
```
## 其他加密
[更多加密方法](https://www.cnblogs.com/kevingrace/p/8194784.html)
- 第1章 电脑操作篇
- 1.1 电脑高清壁纸下载地址
- 1.2 音乐外链在线获取
- 1.3 markdown,js等表格生成神器
- 1.4 在线使用文档,表格,演示文档
- 1.5 开发在线工具
- 1.5.1 toolbox
- 1.5.2 菜鸟工具
- 1.6 vs code远程调试
- 1.7 windows批处理命令
- 1.8 windows安装cygwin运行linux指令
- 1.9 windows下某些程序运行慢
- 1.10 win下为鼠标右键添加新项目
- 1.11 win上自己常用的开发软件
- 1.12 win下vscode配置
- 第2章 Electron 用前端技术开发跨平台桌面应用
- 2.1 介绍
- 2.2 入门链接地址
- 2.3 cnpm使用
- 第3章 Git使用
- 3.1 介绍
- 3.2 同步GitHub的基本使用方法
- 3.3 同步Gitee的基本使用方法
- 3.4 获取当前git分支
- 3.5 LF和CRLF换行的转换
- 第4章 HTML,CSS,JS
- 4.1 HTML速查列表
- 第5章 python使用
- 5.1 文件操作
- 5.2 一句话建立服务器
- 第6章 我的女友叫Linux
- 6.1 使用shell写俄罗斯方块
- 6.2 那些有趣的shell
- 6.2.1 40个有趣的LInux命令行
- 6.2.2 命令行下的网易云搜索播放器
- 6.2.3 从网上获取一条语句并显示
- 6.3 在linux上写汇编
- 6.4 在linux终端连接另一台linux
- 6.5 makefile文件的编写
- 6.6 deepin挂载远程文件夹到本地文件夹
- 6.7 本地lnux和远程linux进行文件拷贝
- 6.8 超好用的linux下的ssh管理工具(electerm)
- 6.9 那些不重要的技巧
- 6.10 linux文件加密
- 6.11 论文画图软件gnuplot
- 6.12 自定义mrun命令用于执行当前路径下的run文件
- 6.13 fish shell后台运行程序
- 第7章 在线工具收集
- 7.1 各种编程语言的在线编辑运行
- 7.2 html js 在线尝试
- 第8章 搭建自己的私有云盘
- 第9章 linux下的一些软件
- 9.1 remarkable--markdown文件轻量编辑器
- 9.2 gnuplot画图软件
- 9.3 Graphviz绘图(流程图,状态图)
- 第10章 TCL脚本编程
- 10.1 基础教程
- 10.2 在tcl脚本文件其他tcl脚本文件运行
- 10.3 在tcl脚本文件中调用bash/fish
- 10.4 TCL培训教程
- 10.5 tcl脚本参数传递
- 第11章 看云的使用
- 11.1 markdown添加公式
- 11.2 看云在linux本地编辑脚本
- 第12章 Go语言在linux下的使用
- 12.1 简介
- 12.2 调用自己的包
- 12.3 Go语言学习的资料
- 12.4 golang使用flag完成命令行解析
- 12.5 Golang文件操作大全
- 12.5.1 创建空文件
- 12.5.2 Truncate文件
- 12.5.3 得到文件信息
- 12.5.4 重命名和移动
- 12.5.5 删除文件
- 12.5.6 打开和关闭文件
- 12.5.7 检查文件是否存在
- 12.5.8 检查读写权限
- 12.5.9 改变权限、拥有者、时间戳
- 12.5.10 硬链接和软链接
- 12.5.11 复制文件
- 12.5.12 跳转到文件指定位置(Seek)
- 12.5.13 写文件
- 12.5.14 快写文件
- 12.5.15 使用缓存写
- 12.5.16 读取最多N个字节
- 12.5.17 文件追加内容
- 12.6 操作CSV文件
- 第13章 搜集资源的一些方法
- 13.1 电子书_电子课本
- 第14章 EndNote的使用
- 14.1 安装
- 14.2 文件检索