Skip to content

一些概念

摘自:https://pdai.tech/md/algorithm/alg-domain-security-secure.html

加密算法简介

  • 加密技术包括两个元素: 加密算法和密钥。
  • 加密算法是将普通的文本(或者可以理解的信息)与一串数字(密钥)的结合,产生不可理解的密文的步骤。
  • 密钥是用来对数据进行编码和解码的一种算法。
  • 在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。

加密算法分类

  • 密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。

  • 对称加密以数据加密标准(DES,Data Encryption Standard)算法为典型代表,非对称加密通常以RSA(Rivest Shamir Adleman)算法为代表。

  • 对称加密的加密密钥和解密密钥相同。非对称加密的加密密钥和解密密钥不同,加密密钥可以公开而解密密钥需要保密。

加密算法应用

常被用在电子商务或者其他需要保证网络传输安全的范围。

对称加密算法DES/3DES/AES

DES:Data Encryption Standard(数据加密标准,又美国国密局,选中的IBM的方案,密钥长度为56,标准提出是要使用64位长的密钥,但是实际中DES算法只用了64位中的56位密钥,这一点是容易出错的)

3DES:trip DES(3级DES,是DES的升级版,主要是为了应对快速发展的计算机能力,能够在24小时内暴力破解传统的56位长度密钥的DES,而3DES相当于对统一数据块采用3次DES,3次DES使用的密钥如果完全不同,则密钥长度可以达到168位,大大延长了被暴力破解的时间)

AES:Advanced Encryption Standard(高级数据加密标准,相当于是DES和3DES的升级版,提高安全性和性能)

以上三种都是对称加密算法,且是国际算法,因为都是美国人搞的。

而我国国密局也制定了自己的对称加密算法,叫国密算法,主要有SM1,SM2,SM3,SM4,SM7, SM9。SM1(相当于AES),和SM4(相当于3DES),性能和安全性肯定是后来者居上,详情可参考:https://pdai.tech/md/algorithm/alg-domain-security-sm.html

重点

对于我们来说,不需要了解加密算法的具体实现,当然,了解更好,不了解也不影响使用。

而是要知道目前前端中常用的对称加密算法是DES和AES这两种,虽然两者内部实现算法不同,但使用方式基本一致。

而DES和AES实现加密和解密都需要使用同样的秘钥,相当于一把锁和多把钥匙,这多把钥匙是一样的,所以都能开锁。

js实现

Python实现

pycryptodome安装不上的几种