博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
加密传输SSL协议2_传统加密
阅读量:7227 次
发布时间:2019-06-29

本文共 1276 字,大约阅读时间需要 4 分钟。

原本到了睡觉的时间,但是做完了SSL的笔记还有GCC和Oracle等的好多的笔记,所以刻苦一点。

The Priciple of Encryption/Decryption

--conventional encryption

上节成功的安装好了openssl安全库,下面就进入一些加解密的理论的学习,有关的权威的书籍《应用密码学:协议、算法与C源程序》

作者:Bruce Schneier

整个加密的过程就是一种数学的变换:
对应的数学表示:

加密时,f1是加密的函数变换,它的输入是明文和口令,

解密时,f2是解密的函数变换,它的输入是密文和口令。
f1和f2是互逆的两种变换,但是f1和f2输入的参数key可以相等也可以不相等。相等的时候就是用同一把密钥进行加密和解密,不相等的时候就是用不同的密钥进行加解密。

根据加解密的key相同或者不同,加密术分为两个体系:对称式加密体系(传统加密体系)和非对称式加密体系。

本节主要讲述对称式的加密体系和相关的实验。

对称式加密体系

这种加密体系的优点:加密速度很快,可以加密大量的数据

但是有个致命的缺点:在非本地加密通信时,密钥的传输问题(把加密好的密文给接收方,你得把密钥给他,但是怎么安全传输这个密钥呢?)

虽然对称式加密体系有这个致命的缺点,但是它仍然是加密的主要手段,因为其加密速度快,能加密大量的数据。

下面用openssl实验这种对称式加密方式

openssl的加解密命令:

加密:

 

 

解密:

其中的ciphername指的是所用的加解密的算法,可以用的算法:base64(知识二进制和文本信息的一种转换算法),des,des3,rc2,rc5,aes256。

注意:加解密时用的算法要一样,否则不能正常解密。

vi pt.txt(建立一个文件,名字:pt.txt)

在文件中输入内容:hello,encryption and decryption

然后利用上面的加密指令加密(注意openssl的路径要写对,/opt/openssl/bin/openssl,当然相对路径也ok,这是linux的相关知识),并对加密后的文件命名为:ct.bin(二进制的,名字随便)

然后查看ct.bin 的内容,发现全是乱码(传染的SecureCRT全是乱码,不得不重启)。

cat ct.bin

这样就对明文实现了对称式的加密,把加密好的密文ct.bin和口令告诉接收方,然后接收方就能解密了。(两个人的加解密算法之前协商一致)

接收方,然后利用上面的解密的命令对ct.txt解密,解密后的文件名字:qt.txt

分别cat  pt.txt和qt.txt发现内容完全一致。

这样就是实现了文件的加密式的传输,但是这里存在一个安全漏洞,我的口令怎么告诉接收方啊,我还得亲自跑过去趴到他的耳边告诉他,那我干嘛不把明文直接告诉他?这个问题下节用非对称解密体系来解决,让你不用亲自跑过去,还能实现安全无漏洞的传输。

转载于:https://www.cnblogs.com/stemon/p/3442563.html

你可能感兴趣的文章
Cordova + Vue 实现点击两次退出应用
查看>>
JAVA 多用户商城系统b2b2c-Spring Cloud Stream 介绍
查看>>
spring cloud构建互联网分布式微服务云平台-SpringCloud集成项目简介
查看>>
基于房源的画像分析
查看>>
80% UI 初学者走过的弯路,你走了几条?
查看>>
文档和元素的几何滚动
查看>>
php 设计模式
查看>>
Java springcloud B2B2C o2o多用户商城 springcloud架构(八)springboot整合mongodb
查看>>
3年工作经验的Java程序员面试经过
查看>>
Mysql 批量写入数据,对于这类性能问题,你是如何优化的
查看>>
MySQL无法启动几种常见问题小结
查看>>
阿里CTO:阿里所有技术和产品输出都将必须通过阿里云进行
查看>>
更好用的集群限流功能,Sentinel 发布 v1.4.2
查看>>
Python(生成执行文件)
查看>>
redis安装配置 - ttlsa教程系列之redis
查看>>
Linux --DHCP服务器配置;DHCP服务器中继
查看>>
IE版本多的可爱_已迁移
查看>>
eclipse查看jar包中class的中文注释乱码问题的解决
查看>>
我的友情链接
查看>>
我的友情链接
查看>>