-
关于摘要、数字签名与数字证书的学习笔记
2019-08-27 10:05:31摘要 一段信息,经过摘要算法得到一串哈希值,即为摘要(digest); 信息是任意长度,而摘要是定长的;...先有私钥,再用函数生成公钥,公钥包含了私钥的信息,但也掺杂了其他随机变量,因此不能反推。 具体的两...摘要
- 一段信息,经过摘要算法得到一串哈希值,即为摘要(digest);
- 信息是任意长度,而摘要是定长的;
- 常见的摘要算法有MD5、SHA1、SHA256、SHA512等,算法把无限的映射成有限,因此可能产生碰撞(两个不同的信息,算出的摘要相同)
非对称加密算法
算法重要的概念是公钥和私钥
先有私钥,再用函数生成公钥,公钥包含了私钥的信息,但也掺杂了其他随机变量,因此不能反推。
具体的两种情形:
- 对方用你的公钥加密信息,你收到后用私钥解开(只有你有私钥,只有你能解开,保证安全)
- 私钥加密的信息对方能用你提供的公钥解开
数字签名(不可抵赖+无法仿冒)
摘要经过加密,就得到数字签名
数字签名在发送方分为两步:
- 从内容算摘要(哈希算法)
- 从摘要明文到摘要密文,也称数字签名(发送方私钥+加密算法)
数字签名验证在接收方,分两步:
- 从摘要密文(数字签名)到摘要明文(发送方公钥+解密算法)
- 从接收到的内容当场计算摘要(哈希算法),比对结果是否一致
数字证书
为了保证“公钥”是可信的,数字证书应运而生
数字证书的处理流程:
发送方先把自己的公钥发给CA,CA用自己的私钥和加密算法对发送方的公钥进行加密,得到的就是CA的数字证书
注意:这里的两个不同的非对称算法(对应的两个公私钥对),一个算法是发送方加密摘要的,生成数字签名;另一个算法是CA加密发送方公钥的,用于生成数字证书。两个算法相互独立,没有必然联系。
在这里CA是第三方机构,CA公钥是公开的,接收方是可以查到的,不可能伪造,但是发送方公钥,接收方是通过通信得到的,收到后无法验证。
参考文献:
-
关于MD5消息摘要算法加密校验及相关问题
2018-08-16 09:08:00MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特...MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。
目前接触到MD5主要是涉及到网络数据传输的安全性(检测数据是否被篡改),关于传递的数据有如下想法:
将原数据通过MD5生成校验码,
将原数据加密,
将校验码与加密后的数据传送给目标,
目标接收后,取出校验码,将加密的数据通过秘钥解密,
将解密后的数据通过MD5生成校验码,
比较两次校验码是否一致以此判断数据是否被篡改。
下面演示一下MD5生成校验码
#include "E:\\截图、文档、工具\\文档\\MD5\\MD5.h" #include "E:\\截图、文档、工具\\文档\\MD5\\MD5.cpp" #include <iostream> using namespace std; int main(int argc, char* argv[]) { MD5_CTX md5; MD5Init(&md5); //初始化用于md5加密的结构 unsigned char decrypt[16]; //存放加密后的结果 unsigned char encrypt[200]="Baidu"; //存放于加密的信息 MD5Update(&md5,encrypt,strlen((char *)encrypt)); //对欲加密的字符进行加密 MD5Final(decrypt,&md5); //获得最终结果 printf("加密前:%s\n加密后:",encrypt); for(int i=0;i<16;i++) printf("%x ",decrypt[i]); printf("\n"); MD5Init(&md5); //每次使用前必须初始化md5 unsigned char encrypt1[200]="Baidu"; /*printf("请输入待加密的字符串\n"); gets((char *)encrypt1);*/ MD5Update(&md5,encrypt1,strlen((char *)encrypt1)); //对欲加密的字符进行加密 MD5Final(decrypt,&md5); //获得最终结果 printf("加密前:%s\n加密后:",encrypt1); for(int i=0;i<16;i++) printf("%x ",decrypt[i]); printf("\n"); MD5Init(&md5); unsigned char encrypt2[200]={0}; printf("请输入待加密的字符串\n"); gets((char *)encrypt2); MD5Update(&md5,encrypt2,strlen((char *)encrypt2)); //对欲加密的字符进行加密 MD5Final(decrypt,&md5); //获得最终结果 for(int i=0;i<16;i++) printf("%x ",decrypt[i]); printf("\n"); return 0; }
这时运行结果
通过代码会发现对"Baidu"这个字符串的三次操作都生成的是同样的校验码.这说明MD5确实是值得信赖的!下面附带MD5下载链接
注意:
MD5_CTX md5;
MD5Init(&md5); //初始化用于md5加密的结构
MD5Update(&md5,encrypt,strlen((char *)encrypt)); //对欲加密的字符进行加密
MD5Final(decrypt,&md5); //获得最终结果
这三步一定要成组合出现,若是哪次生成校验码的过程中少了任意一步,都会导致错误(尤其MD5Init(&md5);这句是将md5初始化,如果不初始化,生成的校验码将会不同!!!) -
评价函数_数院讲座 | 程晋教授:从局部观测反演全局信息的稳定算法及其算法评价指示函数...
2021-01-13 10:28:43Topic从局部观测反演全局信息的稳定算法及其算法评价指示函数单位 Affiliation复旦大学主讲人 Speaker程晋教授 2020/11/26星期四 10:00-11:00 腾讯会议164 139 843报告摘要 Abstract关于如何从物理场的局部信息反演...主题 Topic
从局部观测反演全局信息的稳定算法及其算法评价指示函数
单位 Affiliation
复旦大学
主讲人 Speaker
程晋教授
2020/11/26 星期四 10:00-11:00
腾讯会议164 139 843
报告摘要 Abstract
关于如何从物理场的局部信息反演场的全局信息是解决一些重要问题中的关键之一,如地质勘探、海底探测等。这个问题与偏微分方程的一个基本性质,唯一延拓性(Unique continuation)密切相关。唯一延拓性表明方程解的局部信息可以唯一决定解的整体信息。但是唯一延拓性问题一个本质性的难点是在Hadamard意义下的严重不适定性,即解的局部测量数据的微小变化可能导致解在整体范围内巨大改变。这给数值处理带来很大的难度。我们基于解的单层位势的表达式,结合Tikhonov正则化方法,提出了一种唯一延拓问题的重构算法,并给出了这个算法的评价指示函数。利用这个指示函数,我们可以清楚地知道在区域中的每个点上重构算法的精确程度。
主讲人介绍
Speaker Introduction
程晋,复旦大学数学科学学院教授, 2001年晋升教授,现任上海市现代应用数学重点实验室主任;上海市工业与应用数学学会理事长;英国Institute of Physics Fellow、国际反问题联盟执行委员等。2011年起任国家基金委重大研究计划“高性能计算的基础算法和可计算建模”专家组成员。曾任中国数学会副理事长,国家基金委数理学部专家评审组成员;美国NSF评审Panel member,多个国际知名期刊编委等。在国内外学术刊物上已发表论文110余篇。2019年获得上海市自然科学奖一等奖。在偏微分方程反问题的理论分析和一般反问题的高效反演算法方面取得多项重要进展。在应用方面,与新日铁等国内外企业进行了有效的合作,取得了突出的成果,得到了业界的好评。
------------中山大学珠海数学------------
编辑:张钊
责任编辑:何俊颐
初审:裴丹
审核:周剑芬
审核发布:孔晓慧
-
mysql.h函数解释_MySQL数据库中 Date_FORMAT 函数中大写H和小写h的区别
2021-01-19 04:20:42摘要:在MySQL数据库中对日期函数进行格式化输出时,关于小时的输出有”H”和”h”两种不同的写法,那么它们有什么不同呢?下文将一一道来H 和 h输出的说明Date_FORMAT 中如果采用大写的H,则会输出24小时制的时间...摘要:
在MySQL数据库中对日期函数进行格式化输出时,关于小时的输出有”H”和”h”两种不同的写法,那么它们有什么不同呢?
下文将一一道来
H 和 h输出的说明
Date_FORMAT 中如果采用大写的H,则会输出24小时制的时间信息;
Date_FORMAT 中如果采用小写的h,则会输出12小时制的时间信息;
H 和 h输出的举例
mysql> select post_date,date_format(post_date,'%H') as '24H'
> ,date_format(post_date,'%h') as '12h'
> from maomao_posts limit 10;
+---------------------+------+------+
| post_date | 24H | 12h |
+---------------------+------+------+
| 2014-12-01 15:29:30 | 15 | 03 |
| 2014-12-01 15:32:13 | 15 | 03 |
| 2014-12-01 15:34:44 | 15 | 03 |
| 2014-12-01 15:35:36 | 15 | 03 |
| 2014-12-02 16:28:05 | 16 | 04 |
| 2014-12-04 15:11:16 | 15 | 03 |
| 2014-12-09 10:39:52 | 10 | 10 |
| 2014-12-09 10:45:27 | 10 | 10 |
| 2014-12-11 14:53:12 | 14 | 02 |
| 2014-12-18 08:50:15 | 08 | 08 |
+---------------------+------+------+
10 rows in set (0.00 sec)
date_format大小写h的用法
-
MySQL使用MD5函数对数据加密
2020-06-29 20:53:14MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值... -
汇编中调用函数堆栈的变化及段的定义
2011-10-10 16:35:00今天阅读《unix环境高级编程》P153中关于c程序的存储空间布局提到栈的变化:自动变量以及每次函数调用时所需保存的信息都存放在此段中。有点不理解了,于是上网查资料。所得如下: 摘要:本文说明高级语言编译成... -
MD5消息摘要算法的个人理解
2019-04-11 13:50:09MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特... -
aes算法实现c语言_消息摘要算法MD5图解及C语言实现
2020-12-28 18:25:56前言最近看了很多关于消息摘要算法这方面的资料,既有CSDN上面各路大神写的文章...MD5算法概述MD5信息摘要算法(MD5 Message-Digest Algorithm)是一种被广泛使用的密码散列函数,由MD4改进而来。点我看MD4算法原理... -
博弈论的诡计(读书摘要)
2012-11-07 21:02:38信息是指局中人在作出决策前,所了解的关于得失函数或支付函数的所有知识,包括其他局中人的策略选择给自已带来的收益或损失,以及自己的策略选择给自己带来的因素,只有掌握了信息,才能准确地判断他人和自己的行动... -
关于debug.keystore
2013-11-12 21:09:32接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,... -
关于加密安全
2019-06-01 18:14:09使用同一个密匙进行解密和加密。 ...具有私匙和公匙。公匙用作信息发送方的数据加密,私匙用作信息接收方的数据...信息通过密码散列函数的运算获得该消息的一个标识(保证信息完整性)。 消息验证: 发送端:将密匙和文... -
关于神奇的MD5算法--21
2013-06-10 23:30:001. MD5的全称是Message-DigestAlgorithm5...不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位 的信息摘要。 加密哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串。加... -
Extjs中关于使用分组表格控件之后无法获取对应的行记录问题。
2015-02-06 14:32:58并且添加一摘要行用来显示其他三列在这一地区分组下的总面积之和。 并且根据点击不同的分类弹出不同的提示信息。 二、问题描述: 因为需要根据点击的分类显示不同的提示,所以要对点击的分类进行判断,于是... -
Matlab关于人工神经网络在预测中的应用的论文二-基于RBF人工神经网络模型预测棉花耗水量.pdf
2019-08-13 00:27:54径向基函数;棉花耗水量 引言: 计算机人工神经网络是20世纪80年代兴起的非线性科学,其在人工智能、自动控制和模式识别等领域取得了令人瞩目的成果。将神经网络应用于非线性系统的建模和预测,可以有效地描述... -
MessageDigest 详解
2017-11-27 13:49:45一、概述 java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,...关于信息摘要和散列码请参照《数字证书简介》 MessageDigest 通过其getInstance系列静态函数来进行实例化和初始化。MessageDi -
qukuailian
2018-08-22 14:57:53java.security.MessageDigest类用于为应用程序提供信息摘要算法的...关于信息摘要和散列码请参照《数字证书简介》 MessageDigest 通过其getInstance系列静态函数来进行实例化和初始化。MessageDigest 对象通过使... -
MessageDigest简介
2018-08-10 16:39:44一、概述 java.security.MessageDigest类用于为应用程序提供信息摘要算法的...关于信息摘要和散列码请参照《数字证书简介》 MessageDigest 通过其getInstance系列静态函数来进行实例化和初始化。MessageDigest... -
MessageDigest详解
2018-07-05 09:55:11一、概述java.security.MessageDigest类用于为应用程序提供信息摘要算法的...关于信息摘要和散列码请参照《数字证书简介》MessageDigest 通过其getInstance系列静态函数来进行实例化和初始化。MessageDigest 对象通... -
Matlab关于人工神经网络在预测中的应用的论文二-人工神经网络模型在研究生招生数量预测中的应用.pdf
2019-08-13 00:27:44径向基函数;棉花耗水量 引言: 计算机人工神经网络是20世纪80年代兴起的非线性科学,其在人工智能、自动控制和模式识别等领域取得了令人瞩目的成果。将神经网络应用于非线性系统的建模和预测,可以有效地描述... -
SHA-256 java加密代码
2016-08-24 17:39:31关于信息摘要和散列码请参照《数字证书简介》 MessageDigest 通过其getInstance系列静态函数来进行实例化和初始化。MessageDigest 对象通过使用 update 方法处理数据。任何时候都可以调用 reset 方法重置摘要。一旦... -
java messagedigest_JAVA MessageDigest(MD5加密等)
2021-02-28 06:19:06转自http://blog.csdn.net/hudashi/article/details/8394158一、概述java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如 MD5 或 SHA ...关于信息摘要和散列码请参照《数字证书简介》MessageD... -
版本差异对比(二) -- 文件的MD5算法
2017-11-01 14:28:18java中为比较文件差异,提供了 MessageDigest 类,通过计算出文件的 MD5 值检测文件是否被修改。 java.security.MessageDigest类用于为应用程序提供信息摘要...关于信息摘要和散列码请参照《数字证书简介》Message -
【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】MessageDigest简介(二)
2015-03-04 12:04:00一、概述 java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。简单点说就是用于生成散列码。信息摘要是安全的单向哈希函数,它接收...关于信息摘要和散列码请参照《数字证书 -
MessageDigest详解(Java自带加密)
2016-05-12 15:02:02一、概述 java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。简单点说就是用于生成散列码。信息摘要是安全的单向哈希函数,它...关于信息摘要和散列码请参照《数字证书
-
呆逼萌新的课题要求.txt
-
2021年 系统架构设计师 系列课
-
2014年重庆理工大学《信息安全》期末考试试卷.pdf
-
基于小波技术进行图像融合.zip
-
graphics的lib-ok.7z
-
MYSQL长字符截断
-
精通编译Makefile,Nina, 从底层uboot到Android
-
ThreadLocal全面解析
-
7-Verilog HDL二分频与三分频设计.7z
-
网络安全等级保护等级测评实施培训-公安部.pdf
-
MySQL 视图
-
投标方法论
-
MySQL 多平台多模式(安装、配置和连接 详解)
-
docker菜鸟学习笔记之ubuntu容器中安装python3和卸载python2
-
第一次云服务器部署
-
my-settings.xml
-
access应用的3个开发实例
-
CCW软件基本使用介绍.docx
-
Linux挂载exfat格式U盘
-
MySQL 数据类型和运算符