Openssl是一套开源的tls/ssl协议的实现。包含了常用的密码算法,常用的密钥以及数字证书的封装管理。并提供丰富的程序接口,我们这里通过对openssl的命令工具做简要介绍,来了解openssl提供给我们的各种安全加密功能。
1,命令概览。
-
Standard commands
-
asn1parse ca ciphers cms
-
crl crl2pkcs7 dgst dh
-
dhparam dsa dsaparam ec
-
ecparam enc engine errstr
-
gendh gendsa genpkey genrsa
-
nseq ocsp passwd pkcs12
-
pkcs7 pkcs8 pkey pkeyparam
-
pkeyutl prime rand req
-
rsa rsautl s_client s_server
-
s_time sess_id smime speed
-
spkac ts verify version
-
x509
-
-
Message Digest commands (see the `dgst' command for more details)
-
md2 md4 md5 rmd160
-
sha sha1
-
-
Cipher commands (see the `enc' command for more details)
-
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb
-
aes-256-cbc aes-256-ecb base64 bf
-
bf-cbc bf-cfb bf-ecb bf-ofb
-
camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb
-
camellia-256-cbc camellia-256-ecb cast cast-cbc
-
cast5-cbc cast5-cfb cast5-ecb cast5-ofb
-
des des-cbc des-cfb 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 idea
-
idea-cbc idea-cfb idea-ecb idea-ofb
-
rc2 rc2-40-cbc rc2-64-cbc rc2-cbc
-
rc2-cfb rc2-ecb rc2-ofb rc4
-
rc4-40 seed seed-cbc seed-cfb
-
seed-ecb seed-ofb zlib
1)
Standard commands 列出了openssl所有的命令,包括rsa密码,dsa密码,ca证书。以及模拟tls协议。
2)
Message Digest commands 用来求数据摘要,主要用来求hash散列值。
3)
Cipher commands 用来使用不同的算法进行加密。
下面,我们对后面两个常用的命令进行
2,计算数据摘要。
digest的翻译是消化,整理。对于数据处理,翻译成 ”摘要“ 也不太准确,大概意思就是对数据计算,求得一个唯一值,例如md5码。
1)求文件的MD5码。其中 text.txt 是一个文本测试文件(下同)。
-
[root@localhost openssl]# openssl dgst -md5 text.txt
-
MD5(text.txt)= 0b57a8a3cd89e0e3ccbcbc7fa0b8bc53
2)求文件的sha256散列值。
-
[root@localhost openssl]# openssl dgst -sha256 text.txt
-
SHA256(text.txt)= e10c94b20d7f3cf0cbb28fab0a5e43ecbe981517725ec6ce0c31df17f9881fbf
3)其他算法还有:
-
-md4 to use the md4 message digest algorithm
-
-md5 to use the md5 message digest algorithm
-
-ripemd160 to use the ripemd160 message digest algorithm
-
-sha to use the sha message digest algorithm
-
-sha1 to use the sha1 message digest algorithm
-
-sha224 to use the sha224 message digest algorithm
-
-sha256 to use the sha256 message digest algorithm
-
-sha384 to use the sha384 message digest algorithm
-
-sha512 to use the sha512 message digest algorithm
-
-whirlpool to use the whirlpool message digest algorithm
3,加密算法加密文件。
1)使用des算法加密。
-
[root@localhost openssl]# openssl enc -des -in text.txt -out text.desenc
-
enter des-cbc encryption password:
-
Verifying - enter des-cbc encryption password:
过程中提示输入密码。两次确认后,生成加密后的文件。记住密码,我们要解密文件要用到。
2)解密des加密文件。
-
[root@localhost openssl]# openssl enc -des -d -in text.desenc -out text.desdeenc
-
enter des-cbc decryption password:
命令执行过程中提示输入密码,输入加密时使用的密码,解密后生成新文件。
比较两个文件:
-
[root@localhost openssl]# diff text.txt text.desdeenc
-
[root@localhost openssl]# 没有输出,说明两个文件完全一致。
3)更多加密算法。
-
openssl enc -cast -in text.txt -out text.castenc
-
openssl enc -aes256 -in text.txt -out text.aesenc
-
openssl enc -idea -in text.txt -out text.ideaenc
。。。。。。
阅读(3902) | 评论(0) | 转发(0) |