billing_cu 发表于 2011-12-21 08:43

使用openssl加密文件

<DIV>Openssl是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库、应用程序、SSL协议库。Openssl实现了SSL协议所需要的大多数算法。
<P>下面我将单介绍使用Openssl进行文件的对称加密操作。</P>
<P>一、Openssl支持的加密算法有:<BR>-aes-128-cbc -aes-128-cfb -aes-128-cfb1<BR>-aes-128-cfb8 -aes-128-ecb -aes-128-ofb<BR>-aes-192-cbc -aes-192-cfb -aes-192-cfb1<BR>-aes-192-cfb8 -aes-192-ecb -aes-192-ofb<BR>-aes-256-cbc -aes-256-cfb -aes-256-cfb1<BR>-aes-256-cfb8 -aes-256-ecb -aes-256-ofb<BR>-aes128 -aes192 -aes256<BR>-bf -bf-cbc -bf-cfb<BR>-bf-ecb -bf-ofb -blowfish<BR>-cast -cast-cbc -cast5-cbc<BR>-cast5-cfb -cast5-ecb -cast5-ofb<BR>-des -des-cbc -des-cfb<BR>-des-cfb1 -des-cfb8 -des-ecb<BR>-des-ede -des-ede-cbc -des-ede-cfb<BR>-des-ede-ofb -des-ede3 -des-ede3-cbc<BR>-des-ede3-cfb -des-ede3-ofb -des-ofb<BR>-des3 -desx -desx-cbc<BR>-rc2 -rc2-40-cbc -rc2-64-cbc<BR>-rc2-cbc -rc2-cfb -rc2-ecb<BR>-rc2-ofb -rc4 -rc4-40</P>
<P>二、Openssl加密指令语法:</P>
<P>SYNOPSIS<BR>openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e]<BR>[-d] [-a] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-p]<BR>[-P] [-bufsize number] [-nopad] [-debug]</P>
<P>说明:</P>
<P>-chipername选项:加密算法,Openssl支持的算法在上面已经列出了,你只需选择其中一种算法即可实现文件加密功能。</P>
<P>-in选项:输入文件,对于加密来说,输入的应该是明文文件;对于解密来说,输入的应该是加密的文件。该选项后面直接跟文件名。</P>
<P>-out选项:输出文件,对于加密来说,输出的应该是加密后的文件名;对于解密来说,输出的应该是明文文件名。</P>
<P>-pass选项:选择输入口令的方式,输入源可以是标准输入设备,命令行输入,文件、变量等。</P>
<P>-e选项:实现加密功能(不使用-d选项的话默认是加密选项)。</P>
<P>-d选项:实现解密功能。</P>
<P>-a和-A选项:对文件进行BASE64编解码操作。</P>
<P>-K选项:手动输入加密密钥(不使用该选项,Openssl会使用口令自动提取加密密钥)。</P>
<P>-IV选项:输入初始变量(不使用该选项,Openssl会使用口令自动提取初始变量)。</P>
<P>-salt选项:是否使用盐值,默认是使用的。</P>
<P>-p选项:打印出加密算法使用的加密密钥。</P>
<P>三、案例:</P>
<P>1. 使用aes-128-cbc算法加密文件:</P>
<P>openssl enc -aes-128-cbc -in install.log -out enc.log</P>
<P>(注:这里install.log是你想要加密的文件,enc.log是加密后的文件,回车后系统会提示你输入口令)</P>
<P>2. 解密刚刚加密的文件:</P>
<P>openssl enc -d -aes-128-cbc -in enc.log -out install.log</P>
<P>(注:enc.log是刚刚加密的文件,install.log是解密后的文件,-d选项实现解密功能)</P>
<P>3.加密文件后使用BASE64格式进行编码:</P>
<P>openssl enc -aes-128-cbc -in install.log -out enc.log -a</P>
<P>4.使用多种口令输入方式加密:</P>
<P>openssl enc -des-ede3-cbc -in install.log -out enc.log -pass pass:111111</P>
<P>(这种方式的好处是你可以把它写入到脚本中,自动完成加密功能,不使用pass选项默认系统会提示输入口令,并且确认,是需要人工操作的)</P>
<P>四、Openssl的功能还远不只于此,感兴趣的朋友可以参考Openssl的手册学习。在Linux系统中你可以通过:man openssl 快速获得帮助文件</P>
<P>转自<a href="http://www.itale.org/?p=56" target="_blank">http://www.itale.org/?p=56</A></P>
<P>相关网站:<a href="http://www.openssl.org/" target="_blank">www.openssl.org</A></P>
<P><a href="http://www.slproweb.com/products/Win32OpenSSL.html" target="_blank">http://www.slproweb.com/products/Win32OpenSSL.html</A></P></DIV>
页: [1]
查看完整版本: 使用openssl加密文件