[TOC]
## 1、vi/vim加密文件內容
vim gt-1.sh
輸入:X
注意是大寫的X


` `用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文件,刪除圖中所示部分。
```

```
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 文件檢索