废话不多说,直入主题。

本文主要简单介绍下;

一、数据加密的三种方式;

二、Openssl的基础应用以及创建CA证书与发证;

一、数据加密的三种方式;

1、对称加密;加密与解密方使用同一个算法, 将数据切割成数据块逐步加密,并且前后块之间有关联关系,被称为块量,解密就是拿到块量做运算,进行解密。

常用的对称加密算法有:

DES(56bits), 3DES, AES(128bits), Blowfish

Twofish, IDEA, RC6, CAST5, Serpent

特点;加密与解密使用同一个口令

将原文分割成固定大小数据块,对这些数据块进行加密

加密数度快

缺点;口令传输,安全性不高

口令太多,不易于记忆

2、公钥加密(也称非对称加密);与对称加密算法的主要差别在于,加密和解密的密钥不相同,一个公开(公钥),一个保密(私钥)。解决了对称加密算法密钥分配管理的问题,提高了算法安全性。

非对称算法有;RSA、EIGamal、DSA

特性;发送方数据传输时是用接收方的公钥加密,接收方用自己的私钥解密。

身份认证是发送方用自己的私钥加密,接收方用对方的公钥解密以此来保证数据安全性。

缺点;非对称加密算法的加密、解密的效率比较低。

3、单向加密,对数据按照一定和算法生成特征码,具有不可逆性。

抽取数据特征码的算法有;MD5, SHA1, SHA512, CRC-32

消息认证算法;CBC-MAC、HMAC

特性;

消息认证;只用于验证消息本身,需要加密特征码。

雪崩效应;输入数据的微小改变,会导致结果大的变化。

定长输出;无任输入数据多长,只要使用同一种单向加密算法,输出结果的长度都相同。

结合以上三种加密方法:如下图所示

上图所示,把三种加密算法结合起来使用,对称加密实现了数据的机密性,公钥加密实现身份认证,而单向加密则实现了数据的完整性。

二、Openssl的基础应用以及创建CA证书与发证;

1)、Openss是一套用于SSL(安全套接字层)/TLS(传输层安全)协议的加密工具,有如下三个组件组成;

1、libcrypto;通用功能加密库;

2、libssl;用于实现SSL/TLS的功能

3、多功能命令工具

其作用还可以生成密钥、创建数字证书、计算信息摘要、手动加密解密数据。

2)、对称加密以及解密的方法;

常用算法有:DES,3DES,AES,Blowfish,Twofish,RC6,CAST5

加密; openssl enc -des3 -a -salt -in /etc/issue -out /tmp/issue_cipher

[root@localhost ~]# cat /etc/issue   没加密前的内容
CentOS release 6.5 (Final)
Kernel \r on an \m
[root@localhost ~]# openssl enc -des3 -a -salt -in /etc/issue -out /tmp/issue_cipher
enter des-ede3-cbc encryption password:    输入密码
Verifying - enter des-ede3-cbc encryption password:  再次输入
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# ls
issue_cipher  yum.log
[root@localhost tmp]# cat issue_cipher      查看加密后文件内容
U2FsdGVkX1+A3cLqRI09pTWDT6BhqierBK69evESmUcH9SOHUaA+0nw87hM5sDCT
2/PlBNgiqTMiiKelkoAyBw==

解密;openssl enc -d -des3 -a -salt -in /tmp/issue_cipher -out /mnt/issue

[root@localhost ~]# openssl enc -d -des3 -a -salt -in /tmp/issue_cipher -out /mnt/issue
enter des-ede3-cbc decryption password:    输入解密密码
[root@localhost ~]# cat /mnt/issue    查看解密后的内容
CentOS release 6.5 (Final)
Kernel \r on an \m

用户认证;公钥加密,私钥解密

数字签名;私钥加密,公钥解密

3)、数字证书的证书格式(x509);

公钥和有效期;

持有者的个人身份信息;

证书的使用方式;

证书发放机构的信息;

验证CA的数字签名是否合法;

4)、基于openssl生成私有CA证书;

实验环境;Server,172.16.34.200

Client, 172.16.34.2

1,server端先生成密钥对;

[root@station154 CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
.....................................................................................................................+++
......+++
e is 65537 (0x10001)

2、server完成自签证书;

3、创建需要的文件;

[root@station154 CA]# touch index.txt serial crlnumber
[root@station154 CA]# ls
cacert.pem  certs  crl  crlnumber  index.txt  newcerts  private  serial
[root@station154 CA]# echo 1 > serial
[root@station154 CA]# cat serial
1
[root@station154 CA]#

4、 client实现证书申请;

在主机上生成密钥,保存至应用此证书的服务的配置文件目录下

mkdir /etc/httpd/ssl
cd /etc/httpd/ssl
[root@localhost ssl]# (umask 077; openssl genrsa -out httpd.key 1024)
Generating RSA private key, 1024 bit long modulus
.++++++
........++++++
e is 65537 (0x10001)
[root@localhost ssl]# ls
httpd.key
[root@localhost ssl]#

5、生成证书签署请求:

[root@localhost ssl]# openssl req -new -key httpd.key -out httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Organization Name (eg, company) [Default Company Ltd]:Ouyang
Organizational Unit Name (eg, section) []:linux
Common Name (eg, your name or your server's hostname) []:ca.ouyang.com
Email Address []:caadmin@ouyang.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:redhat
An optional company name []:redhat

(Client端所填的信息要与服务器一致)

6、Clientc端将请求文件发往Server端;

scp httpd.csr 172.16.34.200:/tmp

7、CA签署Client发来的证书申请;

openssl ca -in /tmp/httpd.csr -out /tmp/httpd.csr -days 3655

8、签署完全后将证书发回申请者;

scp httpd.crt 172.16.34.20:/etc/httpd/ssl
9、吊销证书;吊销证书要到Server端;

openssl ca -revoke /tmp/httpd.crt

转载于:https://blog.51cto.com/wfnygah/1376229

加密与解密以及openssl的应用相关推荐

  1. 加密与解密、OpenSSL(SSL/TLS)、OpenSSH(ssh)、dropbear

    下面介绍的是Linux的加密与解密.OpenSSL(SSL/TLS).OpenSSH(ssh).dropbear. 一.数据的加密与解密 1.进程间通信基础 (1).进程间通信方式 同一主机间进程间的 ...

  2. 加密、解密以及Openssl建立私有CA

    一.openssl简介       OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法.常用 的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用.   SS ...

  3. 加密、解密、openssl的基本应用以及CA的实现过程

    随着互联网络的快速发展,已经把现代社会和互联网完全融合在一起了,随之而来的各种消息途径都要经过互联网传播,各种商业机密以及个人保密信息都要在互联网传播,那么怎样保证信息的保密性成了IT界比较头疼的一件 ...

  4. 【加密与解密】Openssl 生成的RSA秘钥如被C#使用解密

    openssl生成的RSA公私钥对保存一个pem文件中,生成时可以选择加密与不加密,如果要提取私钥需要用到openssl rsa进行提取,之后用c#转换为xml之后再对加密数据进行解密,详细如下: 1 ...

  5. 安全与加密-使用gpg和openssl实现加密与解密

    加密可以分为对称加密和非对称加密.两者的主要区别就是是否使用同一个秘钥,对称加密需要用同一个秘钥.非对称加密不需要用同一个秘钥,而是需要两个秘钥:公开密钥(publickey)和私有密钥(privat ...

  6. 加密解密、Openssl、自建CA

    一.三种加密方式    1.对称加密 工作机制:需要对加密和解密使用相同密钥的加密算法.密钥是控制加密及解密过程的指令.算法是一组规则,规定如何进行加密和解密.将原文分割成固定大小的数据块,对这些进行 ...

  7. aes解压命令 linux,Linux使用tar和openssl加密和解密文件

    欢迎,来自IP地址为:110.247.246.119 的朋友 如果系统中保存有机密和敏感信息,那么采用额外的加密防护措施是十分必要的,尤其是这些文件需要在网络上传输时,对文件进行加密就显得十分重要. ...

  8. 使用OpenSSL进行RSA加密和解密(非对称)

    1. RSA加密和解密基础概念 RSA是一种非对称加密. RSA秘钥:私钥和公钥,一对私钥和公钥就像夫妻一样是唯一的,用私钥加密后必须用对应的公钥才能解密,用公钥加密后必须用对应的私钥才能解密. 加密 ...

  9. php signature解密,openssl RSA非对称加密、解密、签名、验签

    需要先了解的openssl系列函数 openssl_pkey_get_private 从证书中解析获取私钥,以供使用.成功,返回真实的密钥资源标识符(Resource ID),否则返回false op ...

最新文章

  1. Java三大主流框架概述--(转载)
  2. redission收发命令流程分析
  3. 简单入门——深度学习笔记(Part II)
  4. 使用SMART监控Ubuntu
  5. 由浅到深理解ROS(9)- 几个基本概念的理解 坐标系 包
  6. gitlab与已安装nginx(tengine)冲突解决方案,使用自己安装的nginx(tengine)
  7. 常用浏览器修改User-Agent的方法
  8. NLB群集的两种操作模式-2
  9. MicroBlaze AXI总线 GPIO中断使用(On Atyls Board)
  10. 基本数据类型的包装类和随机数
  11. 优秀!Github上10个开源免费的后台控制面板你值得拥有!
  12. Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux...
  13. 从阿里的产品能力模型分析,转产品如何避免“从头开始”
  14. linux 刷新率77,Ubuntu 7.04屏幕刷新率
  15. Android 意图(Intent)和过滤器(Filter)
  16. js 大数字单位处理 千、万、千万、亿....
  17. 计算机系统权限授权,win 7 期间版操作系统的权限说明
  18. VSCode lua插件LuaHelper
  19. 转:CPU与内存的那些事
  20. 在计算机软件中 BIOS的中文意思是,电脑bios是什么意思

热门文章

  1. AMD/NV大跌2周后仅两天收复失地 挖矿成背后推手
  2. YCProgress自定义百分比进度条
  3. Spark版本定制第12天:Executor容错安全性
  4. 收缩 tempdb 数据库
  5. MyEclipse10中配置开发Python所需要的PyDev 绝对靠谱 不忽悠!
  6. java核心技术读书笔记1
  7. 中文输入法不触发onkeyup事件的解决办法
  8. REDHAT6.4桌面环境添加快捷建打开命令行终端
  9. 黄聪:wordpress文章同步发布到网易、天涯、新浪博客、百度空间插件
  10. NAC网络访问控制,你需要知道的!