2020-03-30

常用加密算法

一、对称加密

1.定义

需要加密大量数据

2.工作过程

3.常用的算法

DES

秘钥:8个字节

3DES

AES

https://blog.csdn.net/lrwwll/article/details/78069013

在实际开发过程中要注意的地方

  • 服务端和客户端必须使用一样的秘钥和初始化向量(IV)
  • 服务端和客户端必须使用一样的加密模式
  • 服务端和客户端必须使用一样的padding模式

在python中使用

PyCrypto

PyCryptodome

https://pycryptodome.readthedocs.io/en/latest/src/introduction.html

二、非对称加密

1.定义

公钥,私钥 ssh

2.特点

不会用来加密大量数据,和对称加密结合,用来加密对称加密的秘钥

3.工作原理

4.常用算法

RSA

算法原理

RSA算法基于一个十分简单的数论事实,将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难。,因此,将乘积作为公开加密秘钥。

RSA的加密解密过程非常简单:

公钥 (n,e)
私钥 (n,d)
加密 密文 = (明文^e)%n
解密 明文=(密文^d)%n

秘钥的生成步骤

  1. 随机选择两个不想等的质数p和q

    选择61,53 实际应用中,越大越好

  2. 计算p和n的乘积

    n = 61*53=3233

    n的长度就是秘钥的长度,实际应用RSA秘钥一般是1024位,重要场合2048位

  3. 计算n的欧拉函数φ(n)

    φ(n) = (p-1)*(q-1) = 60 * 52=3120

  4. 随机选择一个整数e,条件是 1 < e < φ(n), 且 e与 φ(n) 互质

    随机选了 17 ,实际应用中,常常选 65537

  5. 计算e对φ(n)的模反元素d

    所谓的模反元素就是指有一个整数d,一是的ed被φ(n)*除,余数为1

    e*d - 1 = k * φ(n)

    e*x + φ(n) * y = 1

    17x +3120y = 1

    x = 2753

    y = -15

    d = 2753

    计算完毕

  6. 将n和e封装成公钥,n和d封装是秘钥

    100

在python中使用RSA

三、hash(摘要算法)复习

1.定义

​ 不定长输入,定长输出

2. 特点

  • 不可逆
  • 定长输出
  • 抗修改
  • 强碰撞性

3.应用领域

  • 一致性校验
  • 数字签名
  • 安全访问认证

4.常用算法

md5

sha家族

sha-1 sha-224 sha-256 sha -384 sha-512

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 加密技术定义、使用 在开发爬虫的过程中,我们经常遇到的一种反爬措施是数据加密。常见的加密算法可以分为三类:对称加密...
    modesty123阅读 3,931评论 0 0
  • IOS 逆向开发(一)密码学 RSA 1. 密码学发展简介 密码学是指研究信息加密,破解密码的技术科学。密码学的起...
    孔雨露阅读 4,324评论 0 3
  • Base64 base64是一种基于64个可打印字符来表示二进制数据的表示方法.严格来说它只能算作一种编码方式.B...
    miku酱啦阅读 4,948评论 0 3
  • 密码学基本概念 密码学是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计...
    千寻与小米阅读 3,579评论 0 1
  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 7,915评论 0 6