AES加密算法的详细介绍与实现

AES简介

高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图:

在这里插入图片描述
下面简单介绍下各个部分的作用与意义:

  • 明文P

没有经过加密的数据。

  • 密钥K

用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再通过网络传输给对方,或者直接面对面商量密钥。密钥是绝对不可以泄漏的,否则会被攻击者还原密文,窃取机密数据。

  • AES加密函数

设AES加密函数为E,则 C = E(K,
P),其中P为明文,K为密钥,C为密文。也就是说,把明文P和密钥K作为加密函数的参数输入,则加密函数E会输出密文C。

  • 密文C

经加密函数处理后的数据

  • AES解密函数

设AES解密函数为D,则 P = D(K,
C),其中C为密文,K为密钥,P为明文。也就是说,把密文C和密钥K作为解密函数的参数输入,则解密函数会输出明文P。

在这里简单介绍下对称加密算法与非对称加密算法的区别。

  • 对称加密算法

加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦。

  • 非对称加密算法

加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。常见的非对称加密算法为RSA、ECC和EIGamal。

实际中,一般是通过RSA加密AES的密钥,传输到接收方,接收方解密得到AES密钥,然后发送方(后端)和接收方(前端)用AES密钥来通信。

非对称加密算法(公钥和私钥)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何备份 Outlook Express 项

步骤1&#xff1a;将邮件文件复制到备份文件夹<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />步骤A&#xff1a;定位存储文件夹1. 启动Outlook Express。2. 单击“工具”&#xff0c;然后单击“选项”。3. 在“…

VC6获取硬盘序列号、型号、修订版本号

因为要做个读取硬盘参数信息的控件&#xff0c;所以在网上找了不少代码&#xff0c;但是自己作为一个初学者在使用别人代码时&#xff0c;总会发现有各种各样的问题&#xff1a; 1. 需要的头文件未写明 2. 有些定义未给出 3. 代码的开发环境未明&#xff0c;导致编译时出现“…

Android系统服务-WindowManager

WindowManager是Android中一个重要的服务 &#xff08;Service &#xff09;。WindowManager Service 是全局的&#xff0c;是唯一的。它将用户的操作&#xff0c;翻译成为指令&#xff0c;发送给呈现在界面上的各个Window。Activity会将顶级的控件注册到 Window Manager 中&am…

Linux:关于头文件的位置

十足的菜鸟问题&#xff0c;今天终于想通了一点点。 引子&#xff1a;通常在写代码时先要包含一通头文件&#xff0c;这些头文件们在什么地方呢&#xff1f;这个问题起源于课题中需要操作OK6410的PWM寄存器&#xff0c;查了许多文献说需要ioremap()映射&#xff0c;需要包含 a…

理解AES加密解密的使用方法

很多人对于AES加密并不是很了解&#xff0c;导致互相之间进行加密解密困难。 本文用简单的方式来介绍AES在使用上需要的知识&#xff0c;而不涉及内部算法。最后给出例子来帮助理解AES加密解密的使用方法。 AES的麻烦 相比于其他加密&#xff0c;AES加密似乎模式很多&#xf…

C++中,引用作为函数参数

引用作为函数参数 C之所以增加引用类型&#xff0c; 主要是把它作为函数参数&#xff0c;以扩充函数传递数据的功能。 ———————————————————— c&#xff0c;函数传参&#xff1a;(1)将变量名作为实参和形参。这时传给形参的是变量的值&#xff0c;传递是单向…

全排列算法原理和实现

From: http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1191914.html 全排列是将一组数按一定顺序进行排列&#xff0c;如果这组数有n个&#xff0c;那么全排列数为n!个。现以{1, 2, 3, 4, 5}为例说明如何编写全排列的递归算法。1、首先看最后两个数4, 5。 它们的全排列为…

ext笔记

如何创建对象实例:var app function() { var privVar11; return {p1:11, p2:22,init:function(){}};}(); js创建对象的原理:实际上创建了一个匿名函数&#xff08;没有名字的函数&#xff09;&#xff0c;经过解释之后让它立刻运行&#xff08;注意函数后面的()&#xff09;。…

Linux:建立内核代码树

为什么建立内核代码树&#xff1f;菜鸟简单的以为&#xff0c;好比为某户型的房子&#xff08;某个版本的Linux&#xff09;设计门窗&#xff0c;那么当然需要根据该户型房子的具体参数进行设计了&#xff0c;或者说内核模块要基于内核版本或者该版本的内核代码。那么内核的编译…

输出一个等边三角形(由*拼接),实心或空心,连长为n

开发环境&#xff1a;VC6 /*功能&#xff1a;输出一个等边三角形(由*拼接)&#xff0c;实心或空心&#xff0c;连长为n*/#include <stdio.h>/*将str重复输出len遍*/void Print(char str[], int len){while(len-- > 0)printf("%s", str);}/*功能&#xff1a…

年底了,总结一下大型网站的入侵经验[t00ls转载]

事先声明&#xff1a;1、拒绝跨省。2、拒绝人肉&#xff0c;猪肉&#xff0c;牛肉。本文并不涉及内网。纯属经验谈&#xff0c;以前oldjun有写过类似的。俺这里挑不重复的补充&#xff1a;0x00大型某类别门户世界排名top100以内&#xff1a;- 低调求发展1、一个点&#xff0c;特…

File System Auditor 安装全程截图

最近在家里用h-v做了一下&#xff26;&#xff33;&#xff21;的一些测试&#xff0c;测试记录如下。 FSA安装需求: .net 2.0 SQL2000及更高版本数据库 FSA的组成: 三个部分: 1、FSA 服务器控制台&#xff1a;管理与配置 2、文件服务器&#xff1a;安装FSA agent&#x…

vue中使用cookies和crypto-js实现记住密码和加密

使用crypto-js加解密 第一步&#xff0c;安装 npm install crypto-js 第二步&#xff0c;在你需要的vue组件内import import CryptoJS from “crypto-js”; 第三步&#xff0c;使用 // Encrypt 加密 var cipherText CryptoJS.AES.encrypt("my message","secret…

Linux:编译生成内核模块(来自国嵌的视频教学)

内核模块的代码文件 文件 yyyy.c &#xff08;yyyy可以与模块xxxx同名也可以不同名&#xff09; &#xff08;类似模板的东西&#xff09; #ifndef __KERNEL__ #define __KERNEL__ #endif #ifndef MODULE //直接添加到内核时去掉&#xff0c;生成模块时保留 #d…

iOS开发UI篇—实现一个私人通讯录小应用(二)

一、实现功能说明 &#xff08;1&#xff09;点击注销按钮&#xff0c;弹出一个对话框&#xff0c;点击确定后移除当前栈顶的控制器&#xff0c;返回开始界面&#xff0c;点击取消&#xff0c;不做任何操作。 注意&#xff1a;注销按钮的单击事件已经进行了连线。实现-(void)ac…

IIS内部错误:500之解决方案

将自己很早以前做的一个asp.net网站从自己的笔记本上迁移到公司电脑上&#xff0c;在作好相关配置后&#xff0c;打开网站首页&#xff0c;出现HTTP500错误&#xff0c;上网查了发现这是服务器内部错误。 接着我查看了下系统事件日志信息&#xff0c;发现了错误: 服务器无法加…

AGPM(高级组策略管理)3.0之二操作

续AGPM&#xff08;高级组策略管理 &#xff09;3.0之一部署。1、设置默认AGPM服务器打开组策略管理控制台&#xff08;GPMC.MSC&#xff09;&#xff0c;打开默认的Default Domain Policy进行编辑。打开用户配置、策略、管理模板、Windows 组件、AGPM&#xff0c;进行如下设置…