项目1 数据传输加密 1.算法了解
1.项目概述
项目使用到的资源如下
1.openssl c语言编写的密码开源库
2.protobuf 数据序列化 用于规范网络通信的数据
3.tortoise-git 项目版本管理
项目业务逻辑 ps:通信程序->进行数据加密
项目组 3-5 人 进行通信程序制作 工期 2周
2.项目所用技术
1.序列化 2.套接字通信 3.共享内存操作 4.oracle数据库操作 5.客户端实现 服务器实现
6.封装接口
1.密码学知识
了解 三要素
明文 密文 算法
了解对称加密 与非对称加密的特点
1.算法举例--对称算法
des->3des特点
长度 加密方法
3des特点 与des区别
加密 解密 加密
aes 项目使用最安全, 效率最高的公开的对称加密算法
密钥长度
分组加密
每组明文 密文长度相等
- Blowfish
- RC2/RC4/RC5
- IDEA
- SKIPJACK
2.算法举例 非对称加密
- RSA(数字签名和密钥交换)
- 项目中用的是rsa
- ECC(椭圆曲线加密算法 - 数字签名)
- Diffie-Hellman(DH, 密钥交换)
- El Gamal(数字签名)
- DSA(数字签名)
密钥交换过程
3.哈希算法
1.哈希算法特点
应用场景 ->网盘秒传 登录验证
2.哈希算法应用
- MD4/MD5
- 散列值长度: 16字节
- 抗碰撞性已经被破解
- SHA-1
- 散列值长度: 20字节
- 抗碰撞性已经被破解
- SHA-2
- sha224
- 散列值长度: 224bit / 8 = 28byte
- sha256
- 散列值长度: 256bit / 8 = 32byte
- sha384
- 散列值长度: 384bit / 8 = 48byte
- sha512
- 散列值长度: 512bit / 8 = 64byte
- sha224
- SHA3-224/SHA3-256/SHA3-384/SHA3-512
4.信息认证码
作用 防止数据串改
使用 原始数据+密钥 ->哈希函数=信息认证码
验证过程
缺点
- 秘钥分发困难 ->信息安全无法保证
- 不能区分消息的所有者
5.数字签名
作用 是否被篡改 鉴别数据所有者 不对数据加密
1.数字签名过程 密文
2.检验签名过程 接收的原始数据 + 签名 接收的数据进行哈希 对比密文
解决分发困难问题 解决数据串改问题 一私 一公
安装openssl
OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。
自写查看文档

浙公网安备 33010602011771号