openssl

什么是openssl:
OpenSSL是套开放源代码的SSL套件,其函式库是以C语言所写成,
实作了基本的传输层资料加密功能。
此软件是以Eric Young以及Tim Hudson两人所写的SSLeay为基础所发展的,
SSLeay随着两人前往RSA公司任职而停止开发。
其实openssl,就是是一个加密套件,可以实现各种加密。用的最多的应该就是https和CA认证。
加密分类:
1,对称加密:
   常用算法:DES(56bits), 3DES, AES(128bits), Blowfish
             Twofish, IDEA, RC6, CAST5, Serpent
   优点:加密速度快,保证数据私密性
   缺点:不能实现身份认证,不能实现密钥交换,不能保证数据完整性

有个特别的DH算法能实现密钥交换(有的说是非对称加密里的,原理
   就是应用离散对数上的离散指数难计算。加密双方保留自己的指数,只传送结果,然后用各自
   的指数进行运算,得到一个相同的密钥)
2,非对称加密:
   加密算法:RSA, EIGamal, DSA
   优点:能进行身份认证,能实现密钥交换,保证数据私密性
   缺点:加密速度慢,不能保证数据完整性
3,单向加密:
   加密算法:MD5, SHA1, SHA512, CRC-32
   优点:保证数据完整性,速度快
   缺点:不能保证私密性,不能进行身份认证
具体用法:加密一个文件
1.用opensssl对称加密一个文件
加密:# openssl enc -rc4 -in /tmp/isolinux.cfg -out /tmp/isolinux.enc

解密:# openssl enc -d -rc4 -in /tmp/isolinux.enc -out 123.txt


enc:对称加密
-rc4 :算法
-in/-out:加密前后的文件
2.单向加密(就是提取特码)

# openssl dgst -md5 ./123.txt


这个很简单,和md5sum一样
3.非对称加密
应用:数字签名(私钥加密,公钥解密)
     密钥交换,身份认证
关于https  出自维基百科
HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人***提供合理的保护。

HTTPS的信任继承基于预先安装在浏览器中的证书颁发机构(如VeriSign、Microsoft等)(意即“我信任证书颁发机构告诉我应该信任的”)。因此,一个到某网站的HTTPS连接可被信任,当且仅当:

用户相信他们的浏览器正确实现了HTTPS且安装了正确的证书颁发机构;
   用户相信证书颁发机构仅信任合法的网站;
   被访问的网站提供了一个有效的证书,意即,它是由一个被信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告);
   该证书正确地验证了被访问的网站(如,访问https://example时收到了给“Example Inc.”而不是其它组织的证书);
   或者互联网上相关的节点是值得信任的,或者用户相信本协议的加密层(TLS或SSL)不能被窃听者破坏。
-------------------------
https的实现

建立连接
1,tcp三次握手
2,服务端把自己的公钥给客户端(也就是证书)
3,客户端拿着公钥去找CA,
4,CA把自己的证书发给客户端
5,客户端通过自己的证书表比对CA的证书,
6,如果比对成功,继续连接,CA告诉客户端,服务端的证书是否可信
7,如果可信客户端把自己的公钥给服务端()
---
数据传输
传输
1,数据提取特征码(单向加密,保证数据完整性)
2,用自己的的私钥加密特征码(保证特征码是自己生成的,即这个数据就是我发的)
3,用对称加密数据,会生成一个口令(保证数据私密性)
4,用对方公钥加密口令(保证口令安全)
接收
1,用自己的私钥解密(拿到口令)
2,用口令解密数据(得到明文)
3,用对方的公钥解密特征码(保证数据是对方发的)
4,用特征码校验数据的完整性
---------
用openssl建立私有CA
配置文件:/etc/pki/tls/openssl.cnf
CA的工作目录
1,生成私钥

# openssl genrsa -out /etc/pki/CA/private/cakey.pem

genrsa:生成私钥

2,给自己发证书

# openssl req -new -x509 -key private/cakey.pem -out cacert.pem

req:证书申请
-x509:证书格式
-new:就是新建


3,创建需要的文件:

# touch index.txt serial crlnumber
这几个文件是配置文件中写到的,配置文件有写用途

3,给别人签证书

# openssl ca -in /tmp/http.crs -out http.crt

4,吊销证书
# openssl ca -revoke http.crt

----------------
作为客户端申请证书
1,生成私钥(公私钥成对出现的,公钥是从私钥提取的)

# openssl genrsa -out http.key

2,制作证书申请

# openssl req -new  -key http.key -out http.crs

填写好自己的信息发给CA

总结:
genrsa:生成私钥
req:证书申请
ca:签证书/吊销证书

-------------------------
基于密钥认证的登录
1,生成密钥

# ssh-keygen
默认是rsa

2,把公钥拷贝到远端

# ssh-copy-id root@192.168.100.101

3,不用密码登录了

总结:如有错误,还请帮忙提出,谢谢。。。

转载于:https://blog.51cto.com/evildexy/1371372

openssl,加密,解密,https相关推荐

  1. openssl加密解密

    openssl加密解密 常用加密方式 对称加密:发送方和接受方使用同样的一把私钥,私钥用于加密和解密 非对称加密:有一把公钥,有一把私钥,使用公钥加密,只能使用私钥进行解密 但非对称加密比对称加密慢, ...

  2. openssl 加密解密 指令_OpenSSL未来架构设计,3.0初步实现

    概述 日前OpenSSL官网公布了未来OpenSSL的架构蓝图.作为战略性的架构目标,需要大量的版本迭代本文档概述了OpenSSL战略架构.它需要多个版本的迭代从目前最新的版本1.1开始直到3.0甚至 ...

  3. openssl 加密解密 指令_Shell openssl命令加密解密字符串

    Linux下的 openssl 命令解密 我们以在线加密网站为例 http://tool.chacuo.net/cryptdes 我们选择des cbc模式,密钥为abcdefgh, 偏移量为1234 ...

  4. OpenSSL加密解密文件

    OpenSSL是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库.应用程序.SSL协议库.Openssl实现了SSL协议所需要的大多数算法. 下面介绍使用Openssl进行文件的对 ...

  5. openssl 加密解密 指令_openssl命令aes加密和解密

    openssl命令aes加密和解密 日期:2014-11-12 10:41:25 最后更新日期:2017-07-06 10:00:10 [技术] man openssl查看openssl的功能: [c ...

  6. 国密SM4,layui前端 和.net core后台 加密解密 .net加密解密

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.本文做用?? 二.SM4介绍 三.使用步骤 1.前台实现加密 2.后台实现解密 四 总结 前言 第一次分享,我是个 ...

  7. CTF中(Crypto)常见的加密解密网站

    xssee:http://web2hack.org/xssee xssee:http://evilcos.me/lab/xssee 程默的博客(DES,3DES,AES,RC,Blowfish,Two ...

  8. openssl算法 —— 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密

    openssl 加密字符串的方法: 一.利用openssl命令进行BASE64编码解码(base64 encode/decode): 1. BASE64编码命令 对字符串'abc'进行base64编码 ...

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

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

  10. 使用OpenSSL加密,使用Java解密,使​​用OpenSSL RSA公钥

    抽象 在2017年,我撰写了一个由三部分组成的系列文章,内容涉及选择最佳的哈希和加密算法. 在对该系列进行研究时,我学到了很多有关哈希和加密的知识. 我学到的最重要的事情是,尽管我必须对如何使用最安全 ...

最新文章

  1. [译] 写给前端开发者的 GraphQL 指南
  2. 公共端接正极还是负极_【动力电池大事记】现代摩比斯启动首批模组工厂,松下拟挪威建厂,200名车主起诉现代,密歇根大学开发锂金属固态电池及“无负极”工艺...
  3. python dict下标_python数据类型性能问题
  4. 六招轻松搞定你的CentOS系统安全加固
  5. iOS调用系统相册、相机 显示中文标题
  6. target not created怎么解决_怎么才能最短时、高效、踏实地学习 Python(附链接)...
  7. 一文读懂 - 云上用户如何灵活应用定制化网络服务
  8. 实验八:SQLite数据库操作
  9. HttpClient模拟客户端请求实例
  10. 经济学原理_宏观经济学,微观经济学合集 N.格里高利·曼昆PDF
  11. 项目管理 之四 常用的项目管理工具(Github、Gitlab、Gitea、Gitee、Worktile、Teambition)
  12. uni-app微信小程序——商城(8)——订单详情
  13. C语言中函数的重点知识总结
  14. echarts地图上的标签为图片_百度地图标记点中添加Echarts图表
  15. 大数据开发的面试总结
  16. SpringBoot OA自动化办公系统
  17. iPhone越狱真机调试
  18. 决策树中基尼不纯度初步理解
  19. 30 个免费的 Sketch 必备插件
  20. DPAA FMAN FMC 工具使用

热门文章

  1. 【Hadoop】Hadoop1.X版本与Hadoop2.X的区别
  2. I/O流之缓冲流的文件复制代码及节点流处理数据加密
  3. 性能测试工具选型原则
  4. Selenium select-下拉列表处理
  5. python function terminated un_Python: 僵尸进程的产生和清除方法
  6. rms | 如何绘制模型带置信区间的预测曲线
  7. flex java 全局拦截_Flex CSS阻止底层内容
  8. 前端开发的瓶颈与未来
  9. python url解析path_Django(CBV解析、模板层)
  10. python可以做仿真吗agent_python agent应用