欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

详解OpenSSL中的加密算法指令

程序员文章站 2022-06-21 17:12:54
这篇文章主要介绍了OpenSSL中的加密算法指令,包括其中的一些常用参数选项,需要的朋友可以参考下... 15-07-03...

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选项默认系统会提示输入密码并且确认,是需要人工

操作的。)