CN112149186B - 一种基于摘要算法的数据防篡改的方法及其系统 - Google Patents
一种基于摘要算法的数据防篡改的方法及其系统 Download PDFInfo
- Publication number
- CN112149186B CN112149186B CN202011115170.6A CN202011115170A CN112149186B CN 112149186 B CN112149186 B CN 112149186B CN 202011115170 A CN202011115170 A CN 202011115170A CN 112149186 B CN112149186 B CN 112149186B
- Authority
- CN
- China
- Prior art keywords
- digital certificate
- character string
- data table
- module
- splicing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于摘要算法的数据防篡改的方法,所述方法为:步骤1、提取数据表中需要参与生成数字证书的字段,将字段进行字符串拼接得到原始字符串;步骤2、设定一密钥md5Key,将原始字符串与密钥md5Key进行拼接形成新字符串;步骤3、把新字符串进行MD5摘要算法,然后开始生成数字证书,数字证书是一个11位以内的数字;步骤4、生成数字证书后会存储到当前的数据表的数字证书字段里;步骤5、当进行发货操作时,重复执行步骤1到步骤3,把新生成的数字证书和数据表里存储的数字证书字段进行比对,如果一致则合法,允许发货,不一致则不合法,不允许操作。本发明为系统提供了安全保障。
Description
技术领域
本发明涉及网络安全技术领域,特别是一种基于摘要算法的数据防篡改的方法及其系统。
背景技术
数据安全性是程序设计上必须关注的一个问题,如果数据被恶意篡改将会造成不可挽回的损失,例如银行账户的余额、商城购物系统的钱包金额、支付订单系统的订单状态等等,程序在读取数据库数据的时候,是默认数据是正确的,是安全的,但如果涉及一些关键数据、重要数据,我们应当考虑数据的安全性,我们不仅仅要保证数据库权限的安全问题,还要假设数据库权限被侵入,发生数据篡改的行为之后我们程序如何二次保障安全。
发明内容
为克服上述问题,本发明的目的是提供一种基于摘要算法的数据防篡改的方法,能生成介于11位数字以内的数字证书,为数据安全进行二次保障,提升系统安全性。
本发明采用以下方案实现:一种基于摘要算法的数据防篡改的方法,所述方法包括如下步骤:
步骤1、提取数据表中需要参与生成数字证书的字段,将字段进行字符串拼接得到原始字符串;
步骤2、设定一密钥md5Key,将原始字符串与密钥md5Key进行拼接形成新字符串;
步骤3、把新字符串进行MD5摘要算法,然后开始生成数字证书,数字证书是一个11位以内的数字;
步骤4、生成数字证书后会存储到当前的数据表的数字证书字段里;
步骤5、当进行发货操作时,重复执行步骤1到步骤3,把新生成的数字证书和数据表里存储的数字证书字段进行比对,如果一致则合法,允许发货,不一致则不合法,不允许操作。
进一步的,所述步骤3进一步具体为:
步骤3.1:用新字符串进行MD5得到长度为16的byte数组;
步骤3.2:循环累加前13个byte数组,得到一个介于13到3328的第一数值,13个byte数组中最小的情况是前13个byte都是1,最大的情况是前13个byte都是256;
步骤3.3:循环剩余的后3个byte,和所述第一数值进行一一相乘,得到一个介于13到55834574848的第二数值,其中,byte数组中最小的情况是16个byte都是1,结果为13*1*1*1=13,最大的情况是16个byte都是256,结果是3328*256*256*256=55834574848;该第二数值即为数字证书。
进一步的,所述数据表中的字段为:订单编号orderid、订单状态state、订单时间time,将字段进行字符串拼接即为orderid+state+time得到原始字符串text。
本发明还提供了一种基于摘要算法的数据防篡改的系统,所述系统包括提前字数据模块、拼接模块、数字证书生成模块、存储模块、以及比对处理模块;
所述提前字数据模块,用于提取数据表中需要参与生成数字证书的字段,将字段进行字符串拼接得到原始字符串;
所述拼接模块,用于设定一密钥md5Key,将原始字符串与密钥md5Key进行拼接形成新字符串;
所述数字证书生成模块,用于把新字符串进行MD5摘要算法,然后开始生成数字证书,数字证书是一个11位以内的数字;
所述存储模块,用于生成数字证书后会存储到当前的数据表的数字证书字段里;
所述比对处理模块,用于当进行发货操作时,重复执行提前字数据模块、拼接模块、数字证书生成模块,把新生成的数字证书和数据表里存储的数字证书字段进行比对,如果一致则合法,允许发货,不一致则不合法,不允许操作。
进一步的,所述数字证书生成模块的实现方式进一步具体为:
用新字符串进行MD5得到长度为16的byte数组;
循环累加前13个byte数组,得到一个介于13到3328的第一数值,13个byte数组中最小的情况是前13个byte都是1,最大的情况是前13个byte都是256;
循环剩余的后3个byte,和所述第一数值进行一一相乘,得到一个介于13到55834574848的第二数值,其中,byte数组中最小的情况是16个byte都是1,结果为13*1*1*1=13,最大的情况是16个byte都是256,结果是3328*256*256*256=55834574848;该第二数值即为数字证书。
进一步的,所述数据表中的字段为:订单编号orderid、订单状态state、订单时间time,将字段进行字符串拼接即为orderid+state+time得到原始字符串text。
本发明的有益效果在于:本发明对数据表中一些关键数据采用基于MD5摘要算法,生成一个11位以内的数值类型的数字证书,不仅可以增加算法复杂度,生成数值类型的数字证书也能减少存储空间,且能生成介于11位数字以内的数字证书,为数据安全进行二次保障,提升系统安全性。
附图说明
图1是本发明的方法流程示意图。
图2是本发明的一实施例的方法原理图。
图3是本发明的系统原理框图。
具体实施方式
下面结合附图对本发明做进一步说明。
请参阅图1所示,本发明的一种基于摘要算法的数据防篡改的方法,所述方法包括如下步骤:
步骤1、提取数据表中需要参与生成数字证书的字段,将字段进行字符串拼接得到原始字符串;
步骤2、设定一密钥md5Key,将原始字符串与密钥md5Key进行拼接形成新字符串;
步骤3、把新字符串进行MD5摘要算法,然后开始生成数字证书,数字证书是一个11位以内的数字;
所述步骤3进一步具体为:
步骤3.1:用新字符串进行MD5得到长度为16的byte数组;
步骤3.2:循环累加前13个byte数组,得到一个介于13到3328的第一数值,13个byte数组中最小的情况是前13个byte都是1,最大的情况是前13个byte都是256;
步骤3.3:循环剩余的后3个byte,和所述第一数值进行一一相乘,得到一个介于13到55834574848的第二数值,其中,byte数组中最小的情况是16个byte都是1,结果为13*1*1*1=13,最大的情况是16个byte都是256,结果是3328*256*256*256=55834574848;该第二数值即为数字证书。
步骤4、生成数字证书后会存储到当前的数据表的数字证书字段里;
步骤5、当进行发货操作时,重复执行步骤1到步骤3,把新生成的数字证书和数据表里存储的数字证书字段进行比对,如果一致则合法,允许发货,不一致则不合法,不允许操作。
下面结合一具体实施例对本发明作进一步说明:
请参阅图2所示,本发明的一种基于摘要算法的数据防篡改的方法,包括以下步骤:
步骤1:提取数据表中需要参与生成数字证书的字段,例如支付订单系统里的订单状态是属于重要数据,假设发货的时候我们需要严格校验订单状态是否真正属于已付款,假设提取如下字段参与数字证书的生成:订单编号orderid、订单状态state、订单时间time,拼接orderid+state+time得到原始字符串text。或者又如:数据表中字段为:最后消费时间LastTime、账户余额MyMoney、用户唯一标识UserID;
步骤2:拼接自定义密钥md5Key,text2=text+md5Key;
步骤3:开始生成数字证书,数字证书是一个11位以内的数字,生成后会存储下来,用于下次操作数据时校验数据是否和数字证书匹配。
步骤3.1:用text2进行MD5得到长度为16字节的byte数组(MD5在生成16位摘要字符串之前是先得到一个Byte数组),byte[] array=GetMd5Byte(text2,Encoding.ASCII)
GetMd5Byte代码如下:
public byte[] GetMd5Byte(string text)
{
MD5 md5 = MD5.Create();//实例化一个md5对像
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] array = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
return array;
}
步骤3.2:循环累加前13个byte,得到一个介于13到3328(13*256)的数值,最小的情况是前13个byte都是1,最大的情况是前13个byte都是256。
步骤3.3:循环剩余的后3个byte,和步骤3.2得到的数值一一相乘,得到一个介于13到55834574848的数值,最小的情况是16个byte都是1,结果为13*1*1*1=13,最大的情况是16个byte都是256,结果是3328*256*256*256=55834574848。
代码如下:
public int ComputeMD5ToInt(string text)
{
//最大情况 256*13*256*256*256=55834574848
//16个byte
string md5Key = "YzM753";
string text2 = text + md5Key;
byte[] array = GetMd5Byte(text2, Encoding.ASCII);
int sum = 0;
for (int i = 0; i < array.Length; i++)
{
if (i >= 13)
{
//最后2位byte开始乘积,加大数值
sum += array[i] * sum;
}
else
{
sum += array[i];
}
}
return sum;
}
步骤4:步骤3.3得到的数值结果就是数字证书,把数字证书存储到当前的数据表的数字证书字段里。
步骤5:当系统进行发货操作时,重复步骤1到3,把新生成的数字证书和数据表里存储的数字证书字段进行比对,如果一致则合法,允许发货。
请参阅图3所示本发明的一种基于摘要算法的数据防篡改的系统,所述系统包括提前字数据模块、拼接模块、数字证书生成模块、存储模块、以及比对处理模块;
所述提前字数据模块,用于提取数据表中需要参与生成数字证书的字段,将字段进行字符串拼接得到原始字符串;所述数据表中的字段为:订单编号orderid、订单状态state、订单时间time,将字段进行字符串拼接即为orderid+state+time得到原始字符串text。或者又如:数据表中字段为:最后消费时间LastTime、账户余额MyMoney、用户唯一标识UserID;
所述拼接模块,用于设定一密钥md5Key,将原始字符串与密钥md5Key进行拼接形成新字符串;
所述数字证书生成模块,用于把新字符串进行MD5摘要算法,然后开始生成数字证书,数字证书是一个11位以内的数字;
所述存储模块,用于生成数字证书后会存储到当前的数据表的数字证书字段里;
所述比对处理模块,用于当进行发货操作时,重复执行提前字数据模块、拼接模块、数字证书生成模块,把新生成的数字证书和数据表里存储的数字证书字段进行比对,如果一致则合法,允许发货,不一致则不合法,不允许操作。
所述数字证书生成模块的实现方式进一步具体为:
用新字符串进行MD5得到长度为16的byte数组(MD5在生成16位摘要字符串之前是先得到一个Byte数组);
循环累加前13个byte数组,得到一个介于13到3328的第一数值,13个byte数组中最小的情况是前13个byte都是1,最大的情况是前13个byte都是256;
循环剩余的后3个byte,和所述第一数值进行一一相乘,得到一个介于13到55834574848的第二数值,其中,byte数组中最小的情况是16个byte都是1,结果为13*1*1*1=13,最大的情况是16个byte都是256,结果是3328*256*256*256=55834574848;该第二数值即为数字证书。
总之,本发明对数据表中一些关键数据采用基于MD5摘要算法,生成一个11位以内的数值类型的数字证书,不仅可以增加算法复杂度,生成数值类型的数字证书也能减少存储空间,且能生成介于11位数字以内的数字证书,为数据安全进行二次保障,提升系统安全性。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (4)
1.一种基于摘要算法的数据防篡改的方法,其特征在于:所述方法包括如下步骤:
步骤1、提取数据表中需要参与生成数字证书的字段,将字段进行字符串拼接得到原始字符串;
步骤2、设定一密钥md5Key,将原始字符串与密钥md5Key进行拼接形成新字符串;
步骤3、把新字符串进行MD5摘要算法,然后开始生成数字证书,数字证书是一个11位以内的数字;所述步骤3进一步具体为:
步骤3.1:用新字符串进行MD5得到长度为16的byte数组;
步骤3.2:循环累加前13个byte数组,得到一个介于13到3328的第一数值,13个byte数组中最小的情况是前13个byte都是1,最大的情况是前13个byte都是256;
步骤3.3:循环剩余的后3个byte,和所述第一数值进行一一相乘,得到一个介于13到55834574848的第二数值,其中,byte数组中最小的情况是16个byte都是1,结果为13*1*1*1=13,最大的情况是16个byte都是256,结果是3328*256*256*256=55834574848;该第二数值即为数字证书;
步骤4、生成数字证书后会存储到当前的数据表的数字证书字段里;
步骤5、当进行发货操作时,重复执行步骤1到步骤3,把新生成的数字证书和数据表里存储的数字证书字段进行比对,如果一致则合法,允许发货,不一致则不合法,不允许操作。
2.根据权利要求1所述的一种基于摘要算法的数据防篡改的方法,其特征在于:所述数据表中的字段为:订单编号orderid、订单状态state、订单时间time,将字段进行字符串拼接即为orderid+state+time得到原始字符串text。
3.一种基于摘要算法的数据防篡改的系统,其特征在于:所述系统包括提前字数据模块、拼接模块、数字证书生成模块、存储模块、以及比对处理模块;
所述提前字数据模块,用于提取数据表中需要参与生成数字证书的字段,将字段进行字符串拼接得到原始字符串;
所述拼接模块,用于设定一密钥md5Key,将原始字符串与密钥md5Key进行拼接形成新字符串;
所述数字证书生成模块,用于把新字符串进行MD5摘要算法,然后开始生成数字证书,数字证书是一个11位以内的数字;所述数字证书生成模块的实现方式进一步具体为:
用新字符串进行MD5得到长度为16的byte数组;
循环累加前13个byte数组,得到一个介于13到3328的第一数值,13个byte数组中最小的情况是前13个byte都是1,最大的情况是前13个byte都是256;
循环剩余的后3个byte,和所述第一数值进行一一相乘,得到一个介于13到55834574848的第二数值,其中,byte数组中最小的情况是16个byte都是1,结果为13*1*1*1=13,最大的情况是16个byte都是256,结果是3328*256*256*256=55834574848;该第二数值即为数字证书;
所述存储模块,用于生成数字证书后会存储到当前的数据表的数字证书字段里;
所述比对处理模块,用于当进行发货操作时,重复执行提前字数据模块、拼接模块、数字证书生成模块,把新生成的数字证书和数据表里存储的数字证书字段进行比对,如果一致则合法,允许发货,不一致则不合法,不允许操作。
4.根据权利要求3所述的一种基于摘要算法的数据防篡改的系统,其特征在于:所述数据表中的字段为:订单编号orderid、订单状态state、订单时间time,将字段进行字符串拼接即为orderid+state+time得到原始字符串text。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011115170.6A CN112149186B (zh) | 2020-10-19 | 2020-10-19 | 一种基于摘要算法的数据防篡改的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011115170.6A CN112149186B (zh) | 2020-10-19 | 2020-10-19 | 一种基于摘要算法的数据防篡改的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112149186A CN112149186A (zh) | 2020-12-29 |
CN112149186B true CN112149186B (zh) | 2022-09-06 |
Family
ID=73952194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011115170.6A Active CN112149186B (zh) | 2020-10-19 | 2020-10-19 | 一种基于摘要算法的数据防篡改的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112149186B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291375B (zh) * | 2020-12-30 | 2021-03-26 | 杭州海康威视数字技术股份有限公司 | 物联网设备安全访问控制方法、物联网设备及物联网系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833259B (zh) * | 2012-09-03 | 2015-08-05 | 中科华核电技术研究院有限公司 | 系统间数据防篡改检测方法、校验码生成方法及装置 |
EP2879327A4 (en) * | 2013-09-30 | 2015-06-03 | Huawei Tech Co Ltd | METHOD, APPARATUS AND DEVICE FOR PROCESSING ENCRYPTION AND DECRYPTION |
CN104993932B (zh) * | 2015-06-19 | 2018-04-27 | 飞天诚信科技股份有限公司 | 一种提高签名安全性的方法 |
CN105406960B (zh) * | 2015-12-20 | 2019-02-22 | 河南思维自动化设备股份有限公司 | 一种信息加密和解密的方法 |
CN106533658A (zh) * | 2017-01-11 | 2017-03-22 | 安徽博约信息科技股份有限公司 | 基于md5算法的url防篡改签名及验签方法 |
CN110417555A (zh) * | 2019-06-26 | 2019-11-05 | 珠海横琴新区润成科技股份有限公司 | 一种个人电子签名的安全加密方法和系统 |
-
2020
- 2020-10-19 CN CN202011115170.6A patent/CN112149186B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112149186A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101116097B (zh) | Atm事务的安全蜂窝电话机 | |
US5097504A (en) | Method and device for qualitative saving of digitized data | |
Micciancio | Oblivious data structures: applications to cryptography | |
EP1612643A2 (en) | Call signs | |
CN105340211A (zh) | 用于加密数据的系统及方法 | |
CN106941400A (zh) | 一种基于sram‑puf的模糊保险箱认证方法 | |
CN113255007B (zh) | 一种安全隐匿三要素查询方法 | |
CN106529977A (zh) | 基于微信公众号和支持终端记忆的防伪方法及其系统 | |
CN112149186B (zh) | 一种基于摘要算法的数据防篡改的方法及其系统 | |
CN106385316B (zh) | Puf模糊提取电路和方法 | |
CN114356919A (zh) | 一种结构化数据库的水印嵌入方法、溯源方法及装置 | |
CN112261020A (zh) | 一种分布式远程外包数据审计系统及方法 | |
CN114968323A (zh) | 一种基于国密算法的差分升级方法 | |
CN111490870B (zh) | 一种基于区块链的印章注册方法、验证方法及防伪系统 | |
Fischlin | Incremental cryptography and memory checkers | |
CN116012150A (zh) | 一种比特币交易自治消息提取及解析方法 | |
CN116664123A (zh) | 一种基于区块链技术的数字钱包设计方法 | |
CN108279864A (zh) | 系统随机数生成方法 | |
CN115964407A (zh) | 双副本电力网络安全审计方法、系统、介质及设备 | |
CN114358948A (zh) | Nft原子交换方法、系统、计算机可读存储介质及终端设备 | |
CN113962195A (zh) | 车桩交互身份的识别系统、在线识别方法和离线识别方法 | |
CN115935299A (zh) | 授权控制方法、装置、计算机设备和存储介质 | |
Wang et al. | Template Protection based on Chaotic Map and DNA Encoding for Multimodal Biometrics at Feature Level Fusion. | |
CN112150155A (zh) | 一种验证账户余额防篡改的方法及其系统 | |
CN113783839B (zh) | 区块链数据更新方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |