Chinaunix首页 | 论坛 | 博客
  • 博客访问: 439360
  • 博文数量: 58
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 623
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-26 18:48
个人简介

在生存面前,那纯洁的理想,原来是那么脆弱不堪!

文章分类

全部博文(58)

文章存档

2022年(1)

2021年(1)

2019年(3)

2018年(6)

2017年(6)

2016年(14)

2015年(10)

2014年(16)

2013年(1)

我的朋友

分类: 网络与安全

2016-01-27 20:23:39

Openssl是一套开源的tls/ssl协议的实现。包含了常用的密码算法,常用的密钥以及数字证书的封装管理。并提供丰富的程序接口,我们这里通过对openssl的命令工具做简要介绍,来了解openssl提供给我们的各种安全加密功能。
1,命令概览。

点击(此处)折叠或打开

  1. Standard commands
  2. asn1parse ca ciphers cms
  3. crl crl2pkcs7 dgst dh
  4. dhparam dsa dsaparam ec
  5. ecparam enc engine errstr
  6. gendh gendsa genpkey genrsa
  7. nseq ocsp passwd pkcs12
  8. pkcs7 pkcs8 pkey pkeyparam
  9. pkeyutl prime rand req
  10. rsa rsautl s_client s_server
  11. s_time sess_id smime speed
  12. spkac ts verify version
  13. x509

  14. Message Digest commands (see the `dgst' command for more details)
  15. md2 md4 md5 rmd160
  16. sha sha1

  17. Cipher commands (see the `enc' command for more details)
  18. aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb
  19. aes-256-cbc aes-256-ecb base64 bf
  20. bf-cbc bf-cfb bf-ecb bf-ofb
  21. camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb
  22. camellia-256-cbc camellia-256-ecb cast cast-cbc
  23. cast5-cbc cast5-cfb cast5-ecb cast5-ofb
  24. des des-cbc des-cfb des-ecb
  25. des-ede des-ede-cbc des-ede-cfb des-ede-ofb
  26. des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
  27. des-ofb des3 desx idea
  28. idea-cbc idea-cfb idea-ecb idea-ofb
  29. rc2 rc2-40-cbc rc2-64-cbc rc2-cbc
  30. rc2-cfb rc2-ecb rc2-ofb rc4
  31. rc4-40 seed seed-cbc seed-cfb
  32. 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   是一个文本测试文件(下同)。
  1. [root@localhost openssl]# openssl dgst -md5 text.txt
  2. MD5(text.txt)= 0b57a8a3cd89e0e3ccbcbc7fa0b8bc53

 
2)求文件的sha256散列值。
  1. [root@localhost openssl]# openssl dgst -sha256 text.txt
  2. SHA256(text.txt)= e10c94b20d7f3cf0cbb28fab0a5e43ecbe981517725ec6ce0c31df17f9881fbf

  3)其他算法还有:
  1. -md4        to use the md4 message digest algorithm
  2. -md5        to use the md5 message digest algorithm
  3. -ripemd160  to use the ripemd160 message digest algorithm
  4. -sha        to use the sha message digest algorithm
  5. -sha1       to use the sha1 message digest algorithm
  6. -sha224     to use the sha224 message digest algorithm
  7. -sha256     to use the sha256 message digest algorithm
  8. -sha384     to use the sha384 message digest algorithm
  9. -sha512     to use the sha512 message digest algorithm
  10. -whirlpool  to use the whirlpool message digest algorithm

3,加密算法加密文件。    

   1)使用des算法加密。
  1. [root@localhost openssl]# openssl enc -des -in text.txt -out text.desenc
  2. enter des-cbc encryption password:
  3. Verifying - enter des-cbc encryption password:
    过程中提示输入密码。两次确认后,生成加密后的文件。记住密码,我们要解密文件要用到。

   2)解密des加密文件。
  1. [root@localhost openssl]# openssl enc -des -d -in text.desenc -out text.desdeenc
  2. enter des-cbc decryption password:
    命令执行过程中提示输入密码,输入加密时使用的密码,解密后生成新文件。
    比较两个文件:
  1. [root@localhost openssl]# diff text.txt text.desdeenc
  2. [root@localhost openssl]没有输出,说明两个文件完全一致。
  3)更多加密算法。
  1. openssl enc -cast -in text.txt -out text.castenc
  2. openssl enc -aes256 -in text.txt -out text.aesenc
  3. openssl enc -idea -in text.txt -out text.ideaenc
         。。。。。。


    

阅读(3902) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~