openssl,加密,解密,https
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相关推荐
- openssl加密解密
openssl加密解密 常用加密方式 对称加密:发送方和接受方使用同样的一把私钥,私钥用于加密和解密 非对称加密:有一把公钥,有一把私钥,使用公钥加密,只能使用私钥进行解密 但非对称加密比对称加密慢, ...
- openssl 加密解密 指令_OpenSSL未来架构设计,3.0初步实现
概述 日前OpenSSL官网公布了未来OpenSSL的架构蓝图.作为战略性的架构目标,需要大量的版本迭代本文档概述了OpenSSL战略架构.它需要多个版本的迭代从目前最新的版本1.1开始直到3.0甚至 ...
- openssl 加密解密 指令_Shell openssl命令加密解密字符串
Linux下的 openssl 命令解密 我们以在线加密网站为例 http://tool.chacuo.net/cryptdes 我们选择des cbc模式,密钥为abcdefgh, 偏移量为1234 ...
- OpenSSL加密解密文件
OpenSSL是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库.应用程序.SSL协议库.Openssl实现了SSL协议所需要的大多数算法. 下面介绍使用Openssl进行文件的对 ...
- openssl 加密解密 指令_openssl命令aes加密和解密
openssl命令aes加密和解密 日期:2014-11-12 10:41:25 最后更新日期:2017-07-06 10:00:10 [技术] man openssl查看openssl的功能: [c ...
- 国密SM4,layui前端 和.net core后台 加密解密 .net加密解密
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.本文做用?? 二.SM4介绍 三.使用步骤 1.前台实现加密 2.后台实现解密 四 总结 前言 第一次分享,我是个 ...
- CTF中(Crypto)常见的加密解密网站
xssee:http://web2hack.org/xssee xssee:http://evilcos.me/lab/xssee 程默的博客(DES,3DES,AES,RC,Blowfish,Two ...
- openssl算法 —— 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
openssl 加密字符串的方法: 一.利用openssl命令进行BASE64编码解码(base64 encode/decode): 1. BASE64编码命令 对字符串'abc'进行base64编码 ...
- 加密解密、Openssl、自建CA
一.三种加密方式 1.对称加密 工作机制:需要对加密和解密使用相同密钥的加密算法.密钥是控制加密及解密过程的指令.算法是一组规则,规定如何进行加密和解密.将原文分割成固定大小的数据块,对这些进行 ...
- 使用OpenSSL加密,使用Java解密,使用OpenSSL RSA公钥
抽象 在2017年,我撰写了一个由三部分组成的系列文章,内容涉及选择最佳的哈希和加密算法. 在对该系列进行研究时,我学到了很多有关哈希和加密的知识. 我学到的最重要的事情是,尽管我必须对如何使用最安全 ...
最新文章
- [译] 写给前端开发者的 GraphQL 指南
- 公共端接正极还是负极_【动力电池大事记】现代摩比斯启动首批模组工厂,松下拟挪威建厂,200名车主起诉现代,密歇根大学开发锂金属固态电池及“无负极”工艺...
- python dict下标_python数据类型性能问题
- 六招轻松搞定你的CentOS系统安全加固
- iOS调用系统相册、相机 显示中文标题
- target not created怎么解决_怎么才能最短时、高效、踏实地学习 Python(附链接)...
- 一文读懂 - 云上用户如何灵活应用定制化网络服务
- 实验八:SQLite数据库操作
- HttpClient模拟客户端请求实例
- 经济学原理_宏观经济学,微观经济学合集 N.格里高利·曼昆PDF
- 项目管理 之四 常用的项目管理工具(Github、Gitlab、Gitea、Gitee、Worktile、Teambition)
- uni-app微信小程序——商城(8)——订单详情
- C语言中函数的重点知识总结
- echarts地图上的标签为图片_百度地图标记点中添加Echarts图表
- 大数据开发的面试总结
- SpringBoot OA自动化办公系统
- iPhone越狱真机调试
- 决策树中基尼不纯度初步理解
- 30 个免费的 Sketch 必备插件
- DPAA FMAN FMC 工具使用
热门文章
- 【Hadoop】Hadoop1.X版本与Hadoop2.X的区别
- I/O流之缓冲流的文件复制代码及节点流处理数据加密
- 性能测试工具选型原则
- Selenium select-下拉列表处理
- python function terminated un_Python: 僵尸进程的产生和清除方法
- rms | 如何绘制模型带置信区间的预测曲线
- flex java 全局拦截_Flex CSS阻止底层内容
- 前端开发的瓶颈与未来
- python url解析path_Django(CBV解析、模板层)
- python可以做仿真吗agent_python agent应用