您的位置:首页 > 运维架构 > Linux

在Linux环境下使用OpenSSL对消息和文件进行加密

2013-07-03 15:28 489 查看
OpenSSL是一款功能强大的加密工具包。我们当中许多人已经在使用OpenSSL,用于创建RSA私匙或证书签名请求(CSR)。不过,你可曾知道可以使用OpenSSL来测试计算机速度?或者还可以用它来对文件或消息进行加密?本文将介绍几个简单易学的技巧,教你如何使用OpenSSL对消息和文件进行加密。
1.简介OpenSSL是一款功能强大的加密工具包。我们当中许多人已经在使用OpenSSL,用于创建RSA私匙或证书签名请求(CSR)。不过,你可曾知道可以使用OpenSSL来测试计算机速度?或者还可以用它来对文件或消息进行加密?本文将介绍几个简单易学的技巧,教你如何使用OpenSSL对消息和文件进行加密。2.对消息进行加密和解密首先,我们不妨对简单的消息进行加密。下面这个命令将使用Base64编码方法(Base64 Encoding),对"Welcome toLinuxCareer.com"(欢迎访问LinuxCaeer.com)这个消息进行加密:$ echo "Welcome toLinuxCareer.com" | openssl enc -base64V2VsY29tZSB0byBMaW51eENhcmVlci5jb20K上述这个命令的输出是一个经过加密的字符串,含有已经过编码的消息"Welcome toLinuxCareer.com"。想对经过编码的字符串进行解密,恢复成原始消息,我们就要颠倒顺序,加上-d选项,进行解密:$ echo"V2VsY29tZSB0byBMaW51eENhcmVlci5jb20K" | openssl enc -base64 -dWelcome to LinuxCareer.com上述加密易于使用,不过它缺少密码的一个重要特性,这个重要特性应该可用于加密。比如说,试着用密码"pass"对下列字符串进行解密:U2FsdGVkX181xscMhkpIA6J0qd76N/nSjjTc9NrDUC0CBSLpZQxQ2Db7ipd7kexj为此,就要再次使用OpenSSL,这回带-d选项和编码方法aes-256-cbc:echo"U2FsdGVkX181xscMhkpIA6J0qd76N/nSjjTc9NrDUC0CBSLpZQxQ2Db7ipd7kexj" | opensslenc -aes-256-cbc -d -a你恐怕已经猜想到了,要像上面那样用密码创建经过加密的消息,可以使用下面这个命令:$ echo "OpenSSL" | opensslenc -aes-256-cbc -a enter aes-256-cbc encryption password:Verifying - enter aes-256-cbcencryption password:U2FsdGVkX185E3H2me2D+qmCfkEsXDTn8nCn/4sblr8=如果你想把OpenSSL的输出存储到文件中,而不是存储到STDOUT,只要使用STDOUT重定向">"。将经过加密的输出存储到文件中时,你还可以删去-a选项,因为不再需要输出是基于ASCII文本的:$ echo "OpenSSL" | opensslenc -aes-256-cbc > openssl.datenter aes-256-cbc encryptionpassword:Verifying - enter aes-256-cbcencryption password:$ file openssl.datopenssl.dat: data想对openssl.dat文件进行解密,恢复至原始消息,请使用:$ openssl enc -aes-256-cbc -d -inopenssl.datenter aes-256-cbc decryptionpassword:OpenSSL3.对文件进行加密和解密想使用OpenSSL对文件进行加密,其实就跟对消息进行加密一样简单。唯一的区别在于,我们不是使用echo命令,而是使用-in选项,后面跟以我们想进行加密的实际文件,并使用-out选项,这会指令OpenSSL将经过加密的文件存储到某个名称的文件中:$ openssl enc -aes-256-cbc -in/etc/services -out services.dat想对我们的服务文件进行解密,恢复成原样,请使用:$ openssl enc -aes-256-cbc -d -inservices.dat > services.txtenter aes-256-cbc decryptionpassword:4.对目录进行加密和解密万一你需要使用OpenSSL对整个目录进行加密,首先需要创建gzip打包文件(tarball),然后用上述方法对该打包文件进行加密,也可以使用pipe,同时完成这两项任务:# tar cz /etc | openssl enc-aes-256-cbc -out etc.tar.gz.dattar: Removing leading `/' frommember namesenter aes-256-cbc encryptionpassword:Verifying - enter aes-256-cbcencryption password:想对整个etc/目录进行解密,并提取到当前的工作目录,请使用:# openssl enc -aes-256-cbc -d -inetc.tar.gz.dat | tar xzenter aes-256-cbc decryptionpassword:上述方法对自动备份加密目录来说相当有用。5.小结大家刚才看到的只是OpenSSL加密方面的基本介绍。说到OpenSSL这款加密工具包,它其实没有限制你能用它来做什么,可以说用途广泛。想看看如何使用不同的编码方法,请参阅OpenSSL手册页:$ manopenssl
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: