Linux系统文件加密是怎么实现的
发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,Linux系统文件加密是怎么实现的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux系统一切皆为文件而且Linux系统又是一个多用
千家信息网最后更新 2025年02月13日Linux系统文件加密是怎么实现的
Linux系统文件加密是怎么实现的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
Linux系统一切皆为文件而且Linux系统又是一个多用户系统,所以数据的安全性非常重要,有些情况需要对文件进行加密,那么Linux系统中如何对文件进行加密呢?
方法一:gzexe加密 这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。 它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。
示例如下:
[root@ipsan-node03 ~]# echo "hahahaha" > a.txt [root@ipsan-node03 ~]# cat a.txt hahahaha [root@ipsan-node03 ~]# ls a.txt a.txt [root@ipsan-node03 ~]# gzexe a.txt a.txt: 22.2% [root@ipsan-node03 ~]# ls a.txt a.txt~ gzexe方法会把原来没有加密的文件a.txt备份为a.txt~ ,同时a.txt文件变成了加密文件(即变成了密文) [root@ipsan-node03 ~]# cat a.txt 쏎?螳?p¹\v£?y«0 Fc?ÿE?0´ûm Ͱ:n$9hss4¢03 NeAEؚVºY¯ѿ¾¹«*霻•+]ᚚaΜ Y$@:Wj% .iȣ¬Z®:J ¦b¶mC. 解压之后的文件a.txt内容就会还原回来,同时也会将之前的加密文件变成a.txt~,同样,通常也会删除这个a.txt~的备份文件 [root@ipsan-node03 ~]# gzexe -d a.txt [root@ipsan-node03 ~]# ls a.txt a.txt~ [root@ipsan-node03 ~]# cat a.txt hahahaha [root@ipsan-node03 ~]# cat a.txt~ 쏎?螳?p¹\v£?y«0 Fc?ÿE?0´ûm Ͱ:n$9hss4¢03 NeAEؚVºY¯ѿ¾¹«*霻•+]ᚚaΜ Y$@:Wj% .iȣ¬Z®:J ¦b¶mC方法二:用tar命令 对文件加密压缩和解压 [root@ipsan-node03 ~]# ls test.txt [root@ipsan-node03 ~]# cat test.txt hahahaha heiheihei 如下命令是对filename文件(test.txt)进行加密压缩,生成filename.des3加密压缩文件,123@123为加密的密码 [root@ipsan-node03 ~]# tar -zcf - test.txt |openssl des3 -salt -k 123@123 | dd of=test.txt.des3 0+1 records in 0+1 records out 152 bytes (152 B) copied, 0.00333366 s, 45.6 kB/s --------------------------------------------------------------------------------------------------------- 也可以将/mnt目录下的所有文件全部加密压缩 [root@ipsan-node03 ~]# tar -zcf - /mnt/* |openssl des3 -salt -k 123@123 | dd of=test.des3 或者根据匹配规则进行加密压缩 [root@ipsan-node03 ~]# tar -zcf - /mnt/pass_* |openssl des3 -salt -k 123@123 | dd of=test.des3 --------------------------------------------------------------------------------------------------------- 通常加密后,会将源文件删除 [root@ipsan-node03 ~]# ls test.txt test.txt.des3 [root@ipsan-node03 ~]# rm -f test.txt [root@ipsan-node03 ~]# cat test.txt.des3 Salted__H¡+ZCHaW⃟ \bS©|>þHބ*?ܪ³?@ⴹ??qk)B㲏¡qk;ochl\cz-?/흯 ¤ވտ+¾´2AuK?픏̞t悐ah¤ºʀ?d 解压操作: [root@ipsan-node03 ~]# dd if=test.txt.des3 |openssl des3 -d -k 123@123 | tar zxf - 0+1 records in 0+1 records out 152 bytes (152 B) copied, 4.5873e-05 s, 3.3 MB/s [root@ipsan-node03 ~]# ls test.txt test.txt.des3 [root@ipsan-node03 ~]# cat test.txt hahahaha heiheihei 注意命令最后面的"-",它将释放所有文件, -k 123@123可以没有,没有时在解压时会提示输入密码方法三:结合Tar和OpenSSL给文件和目录加密及解密 当有重要的敏感数据的时候,给文件和目录额外加一层保护是至关重要的,特别是当需要通过网络与他人传输数据的时候。基于这个原因, 可以用到tar(Linux 的一个压缩打包工具)和OpenSSL来解决的方案。借助这两个工具,你真的可以毫不费力地创建和加密 tar 归档文件。 下面介绍使用 OpenSSL创建和加密 tar 或 gz(gzip,另一种压缩文件)归档文件: 牢记使用 OpenSSL 的常规方式是: # openssl command command-options arguments 示例如下: [root@ipsan-node03 ~]# cd /mnt/ [root@ipsan-node03 mnt]# ls [root@ipsan-node03 mnt]# echo "123" > a.txt [root@ipsan-node03 mnt]# echo "456" > b.txt [root@ipsan-node03 mnt]# echo "789" > c.txt [root@ipsan-node03 mnt]# ls a.txt b.txt c.txt 现在要加密当前工作目录的内容(根据文件的大小,这可能需要一点时间) [root@ipsan-node03 mnt]# tar -czf - * | openssl enc -e -aes256 -out test.tar.gz enter aes-256-cbc encryption password: //假设这里设置的密码为123456 Verifying - enter aes-256-cbc encryption password: 上述命令的解释: enc 使用加密进行编码 -e 用来加密输入文件的 enc 命令选项,这里是指前一个 tar 命令的输出 -aes256 加密用的算法 -out 用于指定输出文件名的 enc 命令选项,这里文件名是test.tar.gz [root@ipsan-node03 mnt]# ls a.txt b.txt c.txt test.tar.gz [root@ipsan-node03 mnt]# rm -rf a.txt [root@ipsan-node03 mnt]# rm -rf b.txt [root@ipsan-node03 mnt]# rm -rf c.txt [root@ipsan-node03 mnt]# ls test.tar.gz 对于上面加密后的tar包直接解压肯定是不行的! [root@ipsan-node03 mnt]# tar -zvxf test.tar.gz gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now 要解密上述tar归档内容,需要使用以下命令。 [root@ipsan-node03 mnt]# openssl enc -d -aes256 -in test.tar.gz | tar xz -C /mnt/ enter aes-256-cbc decryption password: [root@ipsan-node03 mnt]# ls a.txt b.txt c.txt test.tar.gz 上述命令的解释: -d 用于解密文件 -C 将加压后的文件提取到目标目录下 当你在本地网络或因特网工作的时候,你可以随时通过加密来保护你和他人共享的重要文本或文件,这有助于降低将其暴露给恶意攻击者的风险。方法四:shc加密(仅仅对shell脚本加密) shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法很好的解决了脚本中含有IP、 密码等不希望公开的问题。 如果你的shell脚本包含了敏感的口令或者其它重要信息, 而且你不希望用户通过ps -ef(查看系统每个进程的状态)捕获敏感信息. 你可以 使用shc工具来给shell脚本增加一层额外的安全保护. shc是一个脚本编译工具, 使用RC4加密算法, 它能够把shell程序转换成二进制可执 行文件(支持静态链接和动态链接). 该工具能够很好的支持: 需要加密, 解密, 或者通过命令参数传递口令的环境. shc的官网下载地址: http://www.datsi.fi.upm.es/~frosal/sources/ 安装方法: [root@ipsan-node03 ~]# cd /usr/local/src/ [root@ipsan-node03 src]# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz [root@ipsan-node03 src]# tar -zvxf shc-3.8.9.tgz [root@ipsan-node03 src]# cd shc-3.8.9 [root@ipsan-node03 shc-3.8.9]# mkdir -p /usr/local/man/man1 这步是必须的,不然安装过程中会报错,shc将安装命令到/usr/local/bin/目录下; 将帮助文档存放在/usr/local/man/man1/目录下,如果系统中无此目录,安装时会报错,可创建此目录后再执行安装 [root@ipsan-node03 shc-3.8.9]# make install 这是要回答yes或者y,不能直接回车,否则会报错 需要注意的是,sch只能能shell脚本文件进行加密,其他文件都不可以! sch加密使用方法: "-f"选项指定需要加密的程序 [root@ipsan-node03 ~]# ls text.sh [root@ipsan-node03 ~]# cat text.sh #!/bin/bash echo "hahaha" [root@ipsan-node03 ~]# shc -r -f text.sh [root@ipsan-node03 ~]# ls text.sh text.sh.x text.sh.x.c 注意:要有-r选项, -f 后跟要加密的脚本名。 运行后会生成两个文件,script-name.x 和 script-name.x.c script-name.x是加密后的可执行的二进制文件. ./script-name.x 即可运行. script-name.x.c是生成script-name.x的原文件(c语言) [root@ipsan-node03 ~]# ./text.sh hahaha [root@ipsan-node03 ~]# ./text.sh.x hahaha 通常从安全角度考虑: 使用sch命令对shell脚本文件进行加密后,只需保留.x的二进制文件即可,其他两个文件均可以删除! [root@ipsan-node03 ~]# ls text.sh text.sh.x text.sh.x.c [root@ipsan-node03 ~]# rm -rf text.sh [root@ipsan-node03 ~]# rm -rf text.sh.x.c [root@ipsan-node03 ~]# ls text.sh.x [root@ipsan-node03 ~]# ./text.sh.x hahaha 另外: shc还提供了一种设定有效执行期限的方法,可以首先使用shc将shell程序转化为二进制,并加上过期时间,如: [root@ipsan-node03 ~]# shc -e 28/02/2018 -m "this script file is about to expire" -v -r -f text.sh shc shll=bash shc [-i]=-c shc [-x]=exec '%s' "$@" shc [-l]= shc opts= shc: cc text.sh.x.c -o text.sh.x shc: strip text.sh.x shc: chmod go-r text.sh.x [root@ipsan-node03 ~]# ls text.sh text.sh.x text.sh.x.c 解释: -e:指定过期时间为2018年2月28日 -m:过期后打印出的信息; -v: verbose -r: 可在相同操作系统的不同主机上执行 -f: 指定源shell 如果在过期后执行,则会有如下提示: [root@ipsan-node03 ~]# ./text.sh.x ./text.sh.x: this script file is about to expire 使用以上方法要注意,需防止用户更改系统时间,可以通过在程序中加入自动更新系统时间的命令来解决此问题!! sch的帮助命令: [root@ipsan-node03 ~]# shc -help shc Version 3.8.9, Generic Script Compiler shc Copyright (c) 1994-2012 Francisco Rosales shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script -e %s Expiration date in dd/mm/yyyy format [none] (指定过期日期) -m %s Message to display upon expiration ["Please contact your provider"] (指定过期提示的信息) -f %s File name of the script to compile (指定要编译的shell的路径及文件名) -i %s Inline option for the shell interpreter i.e: -e -x %s eXec command, as a printf format i.e: exec('%s',@ARGV); -l %s Last shell option i.e: -- -r Relax security. Make a redistributable binary (可以相同操作系统的不同系统中执行) -v Verbose compilation (编译的详细情况) -D Switch ON debug exec calls [OFF] -T Allow binary to be traceable [no] -C Display license and exit -A Display abstract and exit -h Display help and exit Environment variables used: Name Default Usage CC cc C compiler command CFLAGS C compiler flags Please consult the shc(1) man page. 说明: 经测试,相同在操作系统,shc后的可执行二进制文件直接可以移植运行,但不同操作系统可能会出现问题, 比如将上面的test.sh.x的二进制文件在CentOS6.9上加密后移到redhat as5u4上不能运行,出现"Floating point exception"错误提示, 但移到另一台CentOS6.9上直接运行没问题。方法五: ZIP加密1)文件加密 使用命令"zip -e filename.zip filename" 即可出现输入密码的提示,输入2次密码。 此文件即被加密解压时候是需要密码的 下面开始为test.txt文件进行加密 [root@centos6-vm02 ~]# cat test.txt this is a test!!! [root@centos6-vm02 ~]# zip -e test.txt.zip test.txt //如下进行加密操作时,需要输入两次密码 Enter password: Verify password: adding: test.txt (stored 0%) [root@centos6-vm02 ~]# ls test.txt test.txt.zip 进行解压的时候,需要输入密码 [root@centos6-vm02 ~]# rm -f test.txt [root@centos6-vm02 ~]# unzip test.txt.zip Archive: test.txt.zip [test.txt.zip] test.txt password: extracting: test.txt [root@centos6-vm02 ~]# cat test.txt this is a test!!!2)文件夹加密 使用命令"zip -re dirname.zip dirname"即可出现输入密码的提示,输入2次密码。 此文件即被加密解压时候是需要密码的。 下面开始对目录进行加密 [root@centos6-vm02 ~]# mkdir dirtest [root@centos6-vm02 ~]# cat dirtest/haha.txt this is test of dir!!! [root@centos6-vm02 ~]# zip -re dirtest.zip dirtest Enter password: Verify password: adding: dirtest/ (stored 0%) adding: dirtest/haha.txt (stored 0%) 解压目录时需要输入密码 [root@centos6-vm02 ~]# rm -rf dirtest [root@centos6-vm02 ~]# unzip dirtest.zip Archive: dirtest.zip creating: dirtest/ [dirtest.zip] dirtest/haha.txt password: extracting: dirtest/haha.txt [root@centos6-vm02 ~]# ls dirtest haha.txt [root@centos6-vm02 ~]# cat dirtest/haha.txt this is test of dir!!!方法六:GnuPG加密 GnuPG的全称是GNU隐私保护(GNU Privacy Guard),常常被称为GPG,它结合了一组加密软件。它是由GNU项目用C编程语言编写的。最新的稳定版本是2.0.27。在如今的大多数Linux发行版中,gnupg程序包都是默认随带的,所以万一它没有安装,你可以使用apt或yum从软件库来安装它(yum install gnupg)。注意:gpg只能对文件进行加密,对目录则无法完成加密! 下面开始使用GnuPG方式对test.txt文件进行加密 [root@centos6-vm02 ~]# cat test.txt this is a test!!! [root@centos6-vm02 ~]# gpg -c test.txt can't connect to `/root/.gnupg/S.gpg-agent': No such file or directory //这个信息可以忽略 注意:如上加密的时候,会弹出来一个对话框,要求Paraphrase输入两次密码,对这个特定的文件进行加密。 一旦运行带-c选项(完全使用对称密码算法加密)的gpc命令,它会生成一个文件.gpg文件。 [root@centos6-vm02 ~]# ll test.txt* -rw-r--r--. 1 root root 18 Jan 4 10:08 test.txt -rw-r--r--. 1 root root 61 Jan 4 10:04 test.txt.gpg 对文件进行加密后,最好将源文件删除!不要再保留源文件了! [root@centos6-vm02 ~]# rm -f test.txt 文件解密操作。 注意出现Paraphrase提示时,需要提供加密时输入的同一个密码才能解密 [root@centos6-vm02 ~]# gpg test.txt.gpg gpg: 3DES encrypted data can't connect to `/root/.gnupg/S.gpg-agent': No such file or directory gpg: encrypted with 1 passphrase gpg: WARNING: message was not integrity protected [root@centos6-vm02 ~]# ll test.txt* -rw-r--r--. 1 root root 18 Jan 4 10:08 test.txt -rw-r--r--. 1 root root 61 Jan 4 10:04 test.txt.gpg [root@centos6-vm02 ~]# cat test.txt this is a test!!
看完上述内容,你们掌握Linux系统文件加密是怎么实现的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
加密
文件
命令
密码
系统
方法
目录
脚本
输入
二进制
时候
提示
信息
工具
程序
问题
运行
重要
内容
时间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
登录网页显示内部服务器错误
苹果服务器版本下载
致使出现重大网络安全事故
想学好数据库技术
计算机网络技术烧脑吗
违反网络安全法的规定从事
平台连接服务器失败
数据库系统概论高等教育出版社
香港服务器需要bbr加速吗
滁州市软件开发技术项目实训中心
网络安全相关工作有哪些职业前景
视频服务器硬件配置
全民搞软件开发
数据库删除全部记录
精灵互联网科技
修改数据库的排序规则
北京软件开发认可 云趣科技
音乐平台软件开发模型
网络安全员管理竞赛
网络技术学习软件自习室
文件服务器的功能
gitlab服务器的管理
郑州汇一城互联网科技
游戏比赛变成网络安全比赛
广东红色文化馆软件开发公司
得乐生软件开发有限公司
洛仁网络技术有限公司
家庭影视服务器的数据
企业大咖纵论网络安全
适合游戏的数据库