OpenSSL是一個開源的用以實現SSL協議的產品,它主要包括了三個部分:密碼算法庫、應用程序、SSL協議庫。Openssl實現了SSL協議所需要的大多數算法。
下面介紹使用Openssl進行文件的對稱加密操作。
一、Openssl支持的加密算法有:
復制代碼代碼如下:-aes-128-cbc -aes-128-cfb -aes-128-cfb1
-aes-128-cfb8 -aes-128-ecb -aes-128-ofb
-aes-192-cbc -aes-192-cfb -aes-192-cfb1
-aes-192-cfb8 -aes-192-ecb -aes-192-ofb
-aes-256-cbc -aes-256-cfb -aes-256-cfb1
-aes-256-cfb8 -aes-256-ecb -aes-256-ofb
-aes128 -aes192 -aes256
-bf -bf-cbc -bf-cfb
-bf-ecb -bf-ofb -blowfish
-cast -cast-cbc -cast5-cbc
-cast5-cfb -cast5-ecb -cast5-ofb
-des -des-cbc -des-cfb
-des-cfb1 -des-cfb8 -des-ecb
-des-ede -des-ede-cbc -des-ede-cfb
-des-ede-ofb -des-ede3 -des-ede3-cbc
-des-ede3-cfb -des-ede3-ofb -des-ofb
-des3 -desx -desx-cbc
-rc2 -rc2-40-cbc -rc2-64-cbc
-rc2-cbc -rc2-cfb -rc2-ecb
-rc2-ofb -rc4 -rc4-40
二、OpenSSL加密指令語法:
復制代碼代碼如下:SYNOPSIS
openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e]</p>
<p>[-d] [-a] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-p]</p>
<p>[-P] [-bufsize number] [-nopad] [-debug]
說明:
-chipername選項:加密算法,Openssl支持的算法在上面已經列出了,你只需選擇其中一種算法即可實現文件加密功能。
-in選項:輸入文件,對於加密來說,輸入的應該是明文文件;對於解密來說,輸入的應該是加密的文件。該選項後面直接跟文件名。
-out選項:輸出文件,對於加密來說,輸出的應該是加密後的文件名;對於解密來說,輸出的應該是明文文件名。
-pass選項:選擇輸入口令的方式,輸入源可以是標准輸入設備,命令行輸入,文件、變量等。
-e選項:實現加密功能(不使用-d選項的話默認是加密選項)。
-d選項:實現解密功能。
-a和-A選項:對文件進行BASE64編解碼操作。
-K選項:手動輸入加密密鑰(不使用該選項,Openssl會使用口令自動提取加密密鑰)。
-IV選項:輸入初始變量(不使用該選項,Openssl會使用口令自動提取初始變量)。
-salt選項:是否使用鹽值,默認是使用的。
-p選項:打印出加密算法使用的加密密鑰。
三、用法舉例:
1、使用aes-128-cbc算法加密文件:
復制代碼代碼如下:openssl enc -aes-128-cbc -in install.log -out enc.log
(注:這裡install.log是你想要加密的文件,enc.log是加密後的文件,回車後系統會提示你輸入密碼。)
2、解密剛才加密的文件:
復制代碼代碼如下:openssl enc -d -aes-128-cbc -in enc.log -out install.log
(注:enc.log是剛才加密的文件,install.log是解密後的文件,-d選項實現解密功能。)
3、加密文件後使用BASE64格式進行編碼:
復制代碼代碼如下:openssl enc -aes-128-cbc -in install.log -out enc.log -a
4、使用多種口令輸入方式加密:
復制代碼代碼如下:openssl enc -des-ede3-cbc -in install.log -out enc.log -pass pass:111111
(這種方法的好處是你可以把它寫入到腳本中,自動完成加密功能,不使用pass選項默認系統會提示輸入密碼並且確認,是需要人工
操作的。)