unidac sqlite 加密_在Linux上加密文件的一些简单选择

在Linux上有许多加密文件的命令。当你想限制对文件内容的访问时,你可以使用文件权限,但文件加密使限制访问更加有效。这篇文章比较了一些加密文件的命令,并提供了一个简单的脚本来尝试。

当然,加密意味着,你可以用Linux命令和工具查看的文件会被改变,使其无法使用和读取,除非你逆转加密过程。加密一般不会减少文件的大小,除非也使用压缩。事实上,加密过程可能会使一些文件变大。有些命令默认会压缩,有些则不会。

在准备加密文件时,需要注意的事项包括:您打算如何使用它(例如,安全备份,传输到另一个系统),如何管理密钥,以便在需要时可以解密文件,以及原始文件是否保留在原始系统上或被 "原地 "加密 - 您只剩下文件的加密版本。

注意:有些加密命令可以使用公钥/私钥或加密时提供的密码。本篇文章只展示使用密码/口令的命令。

gpg

在Linux上加密文件的标准和最知名的工具之一是gpg。它既可以提供数字加密,也可以提供签名服务,不过在这篇文章中,我们只看用口令加密文件。与其他一些工具不同的是,gpg在加密文件内容之前会对文件进行一些压缩。如果你键入像这样的命令,文件的内容将使用对称密钥加密。换句话说,同一个单词或短语将被用于加密和解密文件。公钥/私钥可以用 -e 选项来使用。

下面是CentOS7上

# rpm -qf /usr/bin/gpg

gnupg2-2.0.22-5.el7_5.x86_64

你会被提示输入两次密码,而原始文件将保持

9f0791c3c8c195baa6c88a57364ef32c.png
time dd if=/dev/zero of=BigFile bs=256M count=11+0 records in1+0 records out268435456 bytes (268 MB) copied, 0.292929 s, 916 MB/sreal    0m0.296suser    0m0.000ssys    0m0.294s# du -sh BigFile256M    BigFile$ gpg -c BigFile#  ls -l BigFile*-rw-r--r-- 1 root root 268435456 Oct  6 09:35 BigFile-rw-r--r-- 1 root root    261009 Oct  6 09:36 BigFile.gpg

请注意,结果文件大小减少了,而且原始文件仍然完好无损。gpg命令一次只能处理一个文件。

zip压缩

/Centos 7 ///

# rpm -qf /usr/bin/zip

zip-3.0-11.el7.x86_64

zip命令一般用于压缩文件,并将文件收集成档案,以方便存储和运输。然而,该命令也支持加密。你只需要添加 --encrypt 选项。

$ zip --encrypt BigFile.zip BigFile和 gpg 一样,zip 也进行了加密和压缩,所以产生的文件大小应该比原始文件小得多。# zip --encrypt BigFile.zip BigFileEnter password:Verify password:  adding: BigFile (deflated 100%)# ls -l BigFile*-rw-r--r-- 1 root root 268435456 Oct  6 09:35 BigFile-rw-r--r-- 1 root root    261009 Oct  6 09:36 BigFile.gpg-rw-r--r-- 1 root root    260708 Oct  6 09:38 BigFile.zip由于zip是一个创建档案的工具,你可以通过在命令行添加多个文件到你的加密包中。

7z

7z命令的工作原理和zip一样,但它的压缩率却令人吃惊。和zip一样,它可以在一个加密的档案中包含多个文件。要调用加密,在命令行的-p选项后面加上加密密码。
详细的参数可以参考help

a : Add files to archive

-p{Password} : set Password

#yum -y install p7zip.x86_64

# rpm -qf /usr/bin/7za

p7zip-16.02-10.el7.x86_64

058f6b7811b0a7de882671361e28ee5d.png
# 7za a BigFile.7z BigFile -p7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21p7zip Version 16.02 (locale=en_US.utf8,Utf16=on,HugeFiles=on,64 bits,2 CPUs Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz (906EA),ASM,AES-NI)Scanning the drive:1 file, 268435456 bytes (256 MiB)Creating archive: BigFile.7zItems to compress: 1Enter password (will not be echoed):Verify password (will not be echoed) :Files read from disk: 1Archive size: 39338 bytes (39 KiB)Everything is Ok

# ls -al BigFile*

-rw-r--r-- 1 root root 268435456 Oct 6 09:35 BigFile

-rw-r--r-- 1 root root 39338 Oct 6 09:56 BigFile.7z

另一个加密和解密文件的工具,ccrypt(基于Rijndael块密码)被认为可以提供非常强大的安全性,并且,像其他描述的命令一样,很容易在命令行上运行。

请注意,ccrypt会删除原始文件(在原地加密文件),不会显著改变文件大小,也不会改变文件的日期/时间以反映加密的时间。$ ccrypt -e BigFile$ ls -l BigFile*-rw-rw-r-r-- 1 shs shs 107740418 Jul 9 10:09 BigFile.cptccrypt命令可以用一条命令加密多个文件,但要分别加密。

但是这个命令应该是被mcryp已经替换了,我这里不做测试,如下

mcrypt.x86_64 : Replacement for crypt()

mcrypt

yum -y install mcrypt

# rpm -qf /usr/bin/mcrypt

mcrypt-2.6.8-11.el7.x86_64

mcrypt命令提示两次密码,保持原文件不变,并改变文件权限,加密后的文件只提供文件所有者的读写访问权限。它在加密算法方面提供了很多选择,还提供了在加密前压缩文件的选项(见-z和-p选项)。它可以处理多个文件,但要分别进行加密。mcrypt 命令似乎使用 rijndael-128 作为其默认的加密算法。但是,你可以通过使用压缩文件上的file命令来验证使用了哪种算法。使用--list选项,mycrypt将列出可用的加密算法。

# du -sh BigFile*

256M BigFile

257M BigFile.nc

# mcrypt BigFile

Enter the passphrase (maximum of 512 characters)

Please use a combination of upper and lower case letters and numbers.

Enter passphrase:

Enter passphrase:

File BigFile was encrypted.

# file BigFile*

BigFile: data

BigFile.nc: mcrypt 2.5 encrypted data, algorithm: rijndael-128, keysize: 32 bytes, mode: cbc,

一个用于尝试加密命令的脚本

这个脚本应该叫做 "try",它可以让你很容易地实验本篇文章中所涉及的工具。例如,如果你键入 "try 7z target"(其中 "target "是你要加密的文件的名称),脚本将运行命令用7z加密你的文件,并向你显示结果。如果你尝试使用一个没有安装在你系统上的命令,它将解释说它还没有设置好使用该命令。

# ./zip.sh gpg BigFile

-rw-r--r-- 1 root root 268435456 Oct 6 09:35 BigFile

-rw-r--r-- 1 root root 261007 Oct 6 10:11 BigFile.gpg

-rw------- 1 root root 268435565 Oct 6 09:35 BigFile.nc

#!/bin/bash# verify that 2 arguments have been providedif [ $# != 2 ]; then    echo "OOPS: command and file name required"    exitfi# make sure the requested encryption command in availablewhich $1 > /dev/nullif [ $? != 0 ]; then    echo "$1 not available"    exit 1fi# make sure the file existsif [ ! -f $2 ]; then    echo "No such file: $2"    exit 2ficase $1 in  gpg)  gpg -c $2        ;;  ccrypt) ccrypt -e $2        ;;  7z)   echo -n "please provide password: "        read password        7z a $2.7z $2 -p$password        ;;  zip)  zip --encrypt $2.zip $2        ;;  mcrypt) mcrypt -p $2        ;;  *)    echo "Sorry, this script is not yet set up for $1"        exit;;esac# show the file(s)ls -l $2*# 使用方法#直接执行命令比如./zip.sh gpg BigFile# 脚本 压缩方式 要压缩的文件

参考:

https://www.networkworld.com/article/3566374/some-easy-choices-for-encrypting-files-on-linux.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值