这篇文章主要介绍“Linux下文件加密的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux下文件加密的方法有哪些”文章能帮助大家解决问题。

方法一:gzexe加密

这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。 它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。示例如下:

[root@ipsan-node03~]#echo"hahahaha">a.txt[root@ipsan-node03~]#cata.txthahahaha[root@ipsan-node03~]#lsa.txta.txt[root@ipsan-node03~]#gzexea.txta.txt:22.2%[root@ipsan-node03~]#lsa.txta.txt~gzexe方法会把原来没有加密的文件a.txt备份为a.txt~,同时a.txt文件变成了加密文件(即变成了密文)[root@ipsan-node03~]#cata.txt쏎?螳?p¹\v£?y«0Fc?؃ÿE?0´ûmͰ:n$9hss4¢03NeAEؚVºY¯׻ѿ¾¹«*霻•+]ᚚaΜY$@:Wj%.iȣ¬Z®:J¦b¶mC#cata.txt~hahahaha通常使用gzexe加密后,会将备份文件(这里指a.txt~)删除[root@ipsan-node03~]#lsa.txta.txt~[root@ipsan-node03~]#rm-fa.txt~[root@ipsan-node03~]#lsa.txt使用-d参数进行解压操作[root@ipsan-node03~]#gzexe--helpUsage:/usr/bin/gzexe[OPTION]FILE...RenameeachFILEwithacompressedversionofitself,renamingFILEtoFILE~.-dDecompresseachFILEinsteadofcompressingit.--helpdisplaythishelpandexit--versionoutputversioninformationandexitReportbugsto.解压之后的文件a.txt内容就会还原回来,同时也会将之前的加密文件变成a.txt~,同样,通常也会删除这个a.txt~的备份文件[root@ipsan-node03~]#gzexe-da.txt[root@ipsan-node03~]#lsa.txta.txt~[root@ipsan-node03~]#cata.txthahahaha[root@ipsan-node03~]#cata.txt~쏎?螳?p¹\v£?y«0Fc?؃ÿE?0´ûmͰ:n$9hss4¢03NeAEؚVºY¯׻ѿ¾¹«*霻•+]ᚚaΜY$@:Wj%.iȣ¬Z®:J¦b¶mC#rm-fa.txt~[root@ipsan-node03~]#lsa.txt方法二:用tar命令 对文件加密压缩和解压

[root@ipsan-node03~]#lstest.txt[root@ipsan-node03~]#cattest.txthahahahaheiheihei如下命令是对filename文件(test.txt)进行加密压缩,生成filename.des3加密压缩文件,123@123为加密的密码[root@ipsan-node03~]#tar-zcf-test.txt|openssldes3-salt-k123@123|ddof=test.txt.des30+1recordsin0+1recordsout152bytes(152B)copied,0.00333366s,45.6kB/s---------------------------------------------------------------------------------------------------------也可以将/mnt目录下的所有文件全部加密压缩[root@ipsan-node03~]#tar-zcf-/mnt/*|openssldes3-salt-k123@123|ddof=test.des3或者根据匹配规则进行加密压缩[root@ipsan-node03~]#tar-zcf-/mnt/pass_*|openssldes3-salt-k123@123|ddof=test.des3---------------------------------------------------------------------------------------------------------通常加密后,会将源文件删除[root@ipsan-node03~]#lstest.txttest.txt.des3[root@ipsan-node03~]#rm-ftest.txt[root@ipsan-node03~]#cattest.txt.des3Salted__H¡+ZCHaW⃟׬\bS©|>þHބ*?ܪ³?@ⴹ??qk)B㲏¡qk;ochl\cz-?/흯¤ވտ+¾´2AuK?픏̞t悐ah¤ºʀ?d解压操作:[root@ipsan-node03~]#ddif=test.txt.des3|openssldes3-d-k123@123|tarzxf-0+1recordsin0+1recordsout152bytes(152B)copied,4.5873e-05s,3.3MB/s[root@ipsan-node03~]#lstest.txttest.txt.des3[root@ipsan-node03~]#cattest.txthahahahaheiheihei注意命令最后面的"-",它将释放所有文件,-k123@123可以没有,没有时在解压时会提示输入密码方法三:结合Tar和OpenSSL给文件和目录加密及解密

当有重要的敏感数据的时候,给文件和目录额外加一层保护是至关重要的,特别是当需要通过网络与他人传输数据的时候。基于这个原因,可以用到tar(Linux的一个压缩打包工具)和OpenSSL来解决的方案。借助这两个工具,你真的可以毫不费力地创建和加密tar归档文件。下面介绍使用OpenSSL创建和加密tar或gz(gzip,另一种压缩文件)归档文件:牢记使用OpenSSL的常规方式是:#opensslcommandcommand-optionsarguments示例如下:[root@ipsan-node03~]#cd/mnt/[root@ipsan-node03mnt]#ls[root@ipsan-node03mnt]#echo"123">a.txt[root@ipsan-node03mnt]#echo"456">b.txt[root@ipsan-node03mnt]#echo"789">c.txt[root@ipsan-node03mnt]#lsa.txtb.txtc.txt现在要加密当前工作目录的内容(根据文件的大小,这可能需要一点时间)[root@ipsan-node03mnt]#tar-czf-*|opensslenc-e-aes256-outtest.tar.gzenteraes-256-cbcencryptionpassword://假设这里设置的密码为123456Verifying-enteraes-256-cbcencryptionpassword:上述命令的解释:enc使用加密进行编码-e用来加密输入文件的enc命令选项,这里是指前一个tar命令的输出-aes256加密用的算法-out用于指定输出文件名的enc命令选项,这里文件名是test.tar.gz[root@ipsan-node03mnt]#lsa.txtb.txtc.txttest.tar.gz[root@ipsan-node03mnt]#rm-rfa.txt[root@ipsan-node03mnt]#rm-rfb.txt[root@ipsan-node03mnt]#rm-rfc.txt[root@ipsan-node03mnt]#lstest.tar.gz对于上面加密后的tar包直接解压肯定是不行的![root@ipsan-node03mnt]#tar-zvxftest.tar.gzgzip:stdin:notingzipformattar:Childreturnedstatus1tar:Errorisnotrecoverable:exitingnow要解密上述tar归档内容,需要使用以下命令。[root@ipsan-node03mnt]#opensslenc-d-aes256-intest.tar.gz|tarxz-C/mnt/enteraes-256-cbcdecryptionpassword:[root@ipsan-node03mnt]#lsa.txtb.txtc.txttest.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-node03src]#wgethttp://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz[root@ipsan-node03src]#tar-zvxfshc-3.8.9.tgz[root@ipsan-node03src]#cdshc-3.8.9[root@ipsan-node03shc-3.8.9]#mkdir-p/usr/local/man/man1这步是必须的,不然安装过程中会报错,shc将安装命令到/usr/local/bin/目录下;将帮助文档存放在/usr/local/man/man1/目录下,如果系统中无此目录,安装时会报错,可创建此目录后再执行安装[root@ipsan-node03shc-3.8.9]#makeinstall这是要回答yes或者y,不能直接回车,否则会报错需要注意的是,sch只能能shell脚本文件进行加密,其他文件都不可以!sch加密使用方法:"-f"选项指定需要加密的程序[root@ipsan-node03~]#lstext.sh[root@ipsan-node03~]#cattext.sh#!/bin/bashecho"hahaha"[root@ipsan-node03~]#shc-r-ftext.sh[root@ipsan-node03~]#lstext.shtext.sh.xtext.sh.x.c注意:要有-r选项,-f后跟要加密的脚本名。运行后会生成两个文件,script-name.x和script-name.x.cscript-name.x是加密后的可执行的二进制文件../script-name.x即可运行.script-name.x.c是生成script-name.x的原文件(c语言)[root@ipsan-node03~]#./text.shhahaha[root@ipsan-node03~]#./text.sh.xhahaha通常从安全角度考虑:使用sch命令对shell脚本文件进行加密后,只需保留.x的二进制文件即可,其他两个文件均可以删除![root@ipsan-node03~]#lstext.shtext.sh.xtext.sh.x.c[root@ipsan-node03~]#rm-rftext.sh[root@ipsan-node03~]#rm-rftext.sh.x.c[root@ipsan-node03~]#lstext.sh.x[root@ipsan-node03~]#./text.sh.xhahaha另外:shc还提供了一种设定有效执行期限的方法,可以首先使用shc将shell程序转化为二进制,并加上过期时间,如:[root@ipsan-node03~]#shc-e28/02/2018-m"thisscriptfileisabouttoexpire"-v-r-ftext.shshcshll=bashshc[-i]=-cshc[-x]=exec'%s'"$@"shc[-l]=shcopts=shc:cctext.sh.x.c-otext.sh.xshc:striptext.sh.xshc:chmodgo-rtext.sh.x[root@ipsan-node03~]#lstext.shtext.sh.xtext.sh.x.c解释:-e:指定过期时间为2018年2月28日-m:过期后打印出的信息;-v:verbose-r:可在相同操作系统的不同主机上执行-f:指定源shell如果在过期后执行,则会有如下提示:[root@ipsan-node03~]#./text.sh.x./text.sh.x:thisscriptfileisabouttoexpire使用以上方法要注意,需防止用户更改系统时间,可以通过在程序中加入自动更新系统时间的命令来解决此问题!!sch的帮助命令:[root@ipsan-node03~]#shc-helpshcVersion3.8.9,GenericScriptCompilershcCopyright(c)1994-2012FranciscoRosalesshcUsage:shc[-edate][-maddr][-iiopt][-xcmnd][-llopt][-rvDTCAh]-fscript-e%sExpirationdateindd/mm/yyyyformat[none](指定过期日期)-m%sMessagetodisplayuponexpiration["Pleasecontactyourprovider"](指定过期提示的信息)-f%sFilenameofthescripttocompile(指定要编译的shell的路径及文件名)-i%sInlineoptionfortheshellinterpreteri.e:-e-x%seXeccommand,asaprintfformati.e:exec('%s',@ARGV);-l%sLastshelloptioni.e:---rRelaxsecurity.Makearedistributablebinary(可以相同操作系统的不同系统中执行)-vVerbosecompilation(编译的详细情况)-DSwitchONdebugexeccalls[OFF]-TAllowbinarytobetraceable[no]-CDisplaylicenseandexit-ADisplayabstractandexit-hDisplayhelpandexitEnvironmentvariablesused:NameDefaultUsageCCccCcompilercommandCFLAGSCcompilerflagsPleaseconsulttheshc(1)manpage.说明:经测试,相同在操作系统,shc后的可执行二进制文件直接可以移植运行,但不同操作系统可能会出现问题,比如将上面的test.sh.x的二进制文件在CentOS6.9上加密后移到redhatas5u4上不能运行,出现"Floatingpointexception"错误提示,但移到另一台CentOS6.9上直接运行没问题。方法五: ZIP加密

1)文件加密 使用命令”zip -e filename.zip filename” 即可出现输入密码的提示,输入2次密码。 此文件即被加密解压时候是需要密码的

下面开始为test.txt文件进行加密[root@centos6-vm02~]#cattest.txtthisisatest!!![root@centos6-vm02~]#zip-etest.txt.ziptest.txt//如下进行加密操作时,需要输入两次密码Enterpassword:Verifypassword:adding:test.txt(stored0%)[root@centos6-vm02~]#lstest.txttest.txt.zip进行解压的时候,需要输入密码[root@centos6-vm02~]#rm-ftest.txt[root@centos6-vm02~]#unziptest.txt.zipArchive:test.txt.zip[test.txt.zip]test.txtpassword:extracting:test.txt[root@centos6-vm02~]#cattest.txtthisisatest!!!

2)文件夹加密 使用命令”zip -re dirname.zip dirname”即可出现输入密码的提示,输入2次密码。 此文件即被加密解压时候是需要密码的。

下面开始对目录进行加密[root@centos6-vm02~]#mkdirdirtest[root@centos6-vm02~]#catdirtest/haha.txtthisistestofdir!!![root@centos6-vm02~]#zip-redirtest.zipdirtestEnterpassword:Verifypassword:adding:dirtest/(stored0%)adding:dirtest/haha.txt(stored0%)解压目录时需要输入密码[root@centos6-vm02~]#rm-rfdirtest[root@centos6-vm02~]#unzipdirtest.zipArchive:dirtest.zipcreating:dirtest/[dirtest.zip]dirtest/haha.txtpassword:extracting:dirtest/haha.txt[root@centos6-vm02~]#lsdirtesthaha.txt[root@centos6-vm02~]#catdirtest/haha.txtthisistestofdir!!!方法六: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~]#cattest.txtthisisatest!!![root@centos6-vm02~]#gpg-ctest.txtcan'tconnectto`/root/.gnupg/S.gpg-agent':Nosuchfileordirectory//这个信息可以忽略注意:如上加密的时候,会弹出来一个对话框,要求Paraphrase输入两次密码,对这个特定的文件进行加密。一旦运行带-c选项(完全使用对称密码算法加密)的gpc命令,它会生成一个文件.gpg文件。[root@centos6-vm02~]#lltest.txt*-rw-r--r--.1rootroot18Jan410:08test.txt-rw-r--r--.1rootroot61Jan410:04test.txt.gpg对文件进行加密后,最好将源文件删除!不要再保留源文件了![root@centos6-vm02~]#rm-ftest.txt文件解密操作。注意出现Paraphrase提示时,需要提供加密时输入的同一个密码才能解密[root@centos6-vm02~]#gpgtest.txt.gpggpg:3DESencrypteddatacan'tconnectto`/root/.gnupg/S.gpg-agent':Nosuchfileordirectorygpg:encryptedwith1passphrasegpg:WARNING:messagewasnotintegrityprotected[root@centos6-vm02~]#lltest.txt*-rw-r--r--.1rootroot18Jan410:08test.txt-rw-r--r--.1rootroot61Jan410:04test.txt.gpg[root@centos6-vm02~]#cattest.txtthisisatest!!!

关于“Linux下文件加密的方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。