GHOST系统之家 - Windows系统光盘下载网站!
当前位置:GHOST系统之家>电脑问题 > 玩转混合加密

玩转混合加密

来源:Ghost系统之家浏览:时间:2022-09-07 09:25:28

本文转载自微信公众号「全栈修仙之路」,作者阿宝哥 。转载本文请联系全栈修仙之路公众号。

数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。

数据加密仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。

本文阿宝哥将介绍如何对数据进行混合加密,即使用对称加密算法与非对称加密算法对数据进行加密,从而进一步保证数据的安全性。阅读完本文,你将了解以下内容:

  • 什么是对称加密、对称加密的过程、对称加密的优缺点及 AES 对称加密算法的使用;
  • 什么是非对称加密、非对称加密的过程、非对称加密的优缺点及 RSA 非对称加密算法的使用;
  • 什么是混合加密、混合加密的过程及如何实现混合加密。

在最后的 阿宝哥有话说 环节,阿宝哥还将简单介绍一下什么是消息摘要算法和什么是 MD5 算法及其用途与缺陷。

好的,现在让我们步入正题。为了让刚接触混合加密的小伙伴更好地了解并掌握混合加密,阿宝哥将乘坐 “时光机” 带大家来到某个发版的夜晚...

那一晚我们团队的小伙伴正在等服务端数据升级,为了让大家 “忘记” 这个漫漫的升级过程,阿宝哥就立马组织了一场关于混合加密的技术分享会。在阿宝哥“威逼利诱”之下,团队的小伙伴们很快就到齐了,之后阿宝哥以以下对话拉开了分享会的序幕:

几分钟过后,小哥讲完了,基本关键点都有回答上来,但还遗漏了一些内容。为了让小伙伴们更好地理解对称加密,阿宝哥对小哥表述的内容进行了重新梳理,下面让我们来一起认识一下对称加密。

一、对称加密

1.1 什么是对称加密

对称密钥算法(英语:Symmetric-keyalgorithm)又称为对称加密、私钥加密、共享密钥加密,是密码学中的一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。

1.2 对称加密的优点

算法公开、计算量小、加密速度快、加密效率高,适合对大量数据进行加密的场景。 比如 HLS(HTTP LiveStreaming)普通加密场景中,一般会使用AES-128 对称加密算法对 TS 切片进行加密,以保证多媒体资源安全。

1.3 对称加密的过程

发送方使用密钥将明文数据加密成密文,然后发送出去,接收方收到密文后,使用同一个密钥将密文解密成明文读取。

1.4 对称加密的使用示例

常见的对称加密算法有AES、ChaCha20、3DES、Salsa20、DES、Blowfish、IDEA、RC5、RC6、Camellia。这里我们以常见的AES算法为例,来介绍一下 AES(Advanced Encryption Standard)对称加密与解密的过程。

下面阿宝哥将使用 crypto-js 这个库来介绍 AES 算法的加密与解密,该库提供了 CryptoJS.AES.encrypt() 方法用于实现AES加密,而 AES 解密对应的方法是 CryptoJS.AES.decrypt()。

基于上述两个方法阿宝哥进一步封装了 aesEncrypt() 和 aesDecrypt() 这两个方法,它们分别用于 AES加密与解密,其具体实现如下所示:

1.4.1 AES 加密方法

1.4.2 AES 解密方法

1.4.3 AES 加密与解密示例

在以上示例中,我们在页面上创建了 3 个 textarea,分别用于存放明文、加密后的密文和解密后的明文。当用户点击 加密按钮时,会对用户输入的明文进行AES 加密,完成加密后,会把密文显示在密文对应的 textarea 中,当用户点击 解密 按钮时,会对密文进行AES解密,完成解密后,会把解密后的明文显示在对应的 textarea 中。

以上示例对应的完整代码如下所示:

在上面的示例中,我们通过 AES 对称加密算法,对 “我是阿宝哥” 明文进行加密,从而实现信息隐蔽。

那么使用对称加密算法就可以解决我们前面的问题么?答案是否定,这是因为对称加密存在一些的缺点。

1.5 对称加密的缺点

通过使用对称加密算法,我们已经把明文加密成密文。虽然这解决了数据的安全性,但同时也带来了另一个新的问题。因为对称加密算法,加密和解密时使用的是同一个密钥,所以对称加密的安全性就不仅仅取决于加密算法本身的强度,更取决于密钥是否被安全的传输或保管。

另外对于实际应用场景,为了避免单一的密钥被攻破,从而导致所有的加密数据被破解,对于不同的数据,我们一般会使用不同的密钥进行加密,这样虽然提高了安全性,但也增加了密钥管理的难度。

由于对称加密存在以上的问题,因此它并不是一种好的解决方案。为了找到更好的方案,阿宝哥开始了另一轮新的对话。

二、非对称加密

2.1 什么是非对称加密

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2.2 非对称加密的优点

安全性更高,公钥是公开的,私钥是自己保存的,不需要将私钥提供给别人。

2.3 非对称加密的过程

2.4 非对称加密的使用示例

常见的非对称加密算法有 RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。这里我们以常见的 RSA算法为例,来介绍一下RSA 非对称加密与解密的过程。

RSA 是 1977 年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(AdiShamir)和伦纳德·阿德曼(LeonardAdleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA 就是他们三人姓氏开头字母拼在一起组成的。

下面阿宝哥将使用 jsencrypt 这个库来介绍 RSA 算法的加密与解密,该库提供了 encrypt() 方法用于实现 RSA 加密,而RSA解密对应的方法是 decrypt()。

2.4.1 创建公私钥

使用 jsencrypt 这个库之前,我们需要先生成公钥和私钥。接下来阿宝哥以 macOS 系统为例,来介绍一下如何生成公私钥。

首先我们先来生成私钥,在命令行输入以下命令:

在该命令成功运行之后,在当前目录下会生成一个 rsa_1024_priv.pem 文件,该文件的内容如下:

然后我们来生成公钥,同样在命令行输入以下命令:

在该命令成功运行之后,在当前目录下会生成一个 rsa_1024_pub.pem 文件,该文件的内容如下:

2.4.2 创建 RSA 加密器和解密器

创建完公私钥之后,我们就可以进一步创建 RSA 加密器和解密器,具体代码如下:

2.4.3 RSA 加密与解密示例(下图标题为 RSA非对称加密)

在以上示例中,我们在页面上创建了 3 个 textarea,分别用于存放明文、加密后的密文和解密后的明文。当用户点击 加密按钮时,会对用户输入的明文进行RSA 加密,完成加密后,会把密文显示在密文对应的 textarea 中,当用户点击 解密 按钮时,会对密文进行RSA解密,完成解密后,会把解密后的明文显示在对应的 textarea 中。

以上示例对应的完整代码如下所示:

阿宝哥:RSA 非对称加密与解密示例

标签:加密

推荐系统

  • 番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    番茄花园 Windows 10 32位极速企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活

  • 新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载

    新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    新萝卜家园电脑城专用系统 Windows10 x86企业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程

  • 笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    笔记本台式机专用系统 Windows 10 32位企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过

  • 笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(64位) 提供下载

    笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(64位) 提供下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    笔记本台式机专用系统 Windows10 64专业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的专业版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动

  • 雨林木风 Windows10 x64 企业装机版 版本1903 2022年7月(64位) ISO镜像高速下载

    雨林木风 Windows10 x64 企业装机版 版本1903 2022年7月(64位) ISO镜像高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    新雨林木风 Windows10 x64 企业装机版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活

  • 深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年7月(64位) 高速下载

    深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年7月(64位) 高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    深度技术 Windows 10 x64 企业TLSB 电脑城装机版2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程

  • 电脑公司 装机专用系统Windows10 x64 企业版2022年7月(64位) ISO镜像高速下载

    电脑公司 装机专用系统Windows10 x64 企业版2022年7月(64位) ISO镜像高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    电脑公司 装机专用系统 Windows10 x64 企业TLSB版2022年7月一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过

  • 新雨林木风 Windows10 x86 企业装机版2022年7月(32位) ISO镜像高速下载

    新雨林木风 Windows10 x86 企业装机版2022年7月(32位) ISO镜像高速下载

    语言:中文版系统大小:3.15GB系统类型:Win10

    新雨林木风 Windows10 x86 专业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的专业版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活系统,无