CN112149186B - 一种基于摘要算法的数据防篡改的方法及其系统 - Google Patents

一种基于摘要算法的数据防篡改的方法及其系统 Download PDF

Info

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
Application number
CN202011115170.6A
Other languages
English (en)
Other versions
CN112149186A (zh
Inventor
刘德建
叶伟
郑彬
岳万恕
陈宏展
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Tianqing Online Interactive Technology Co Ltd
Original Assignee
Fujian Tianqing Online Interactive Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Tianqing Online Interactive Technology Co Ltd filed Critical Fujian Tianqing Online Interactive Technology Co Ltd
Priority to CN202011115170.6A priority Critical patent/CN112149186B/zh
Publication of CN112149186A publication Critical patent/CN112149186A/zh
Application granted granted Critical
Publication of CN112149186B publication Critical patent/CN112149186B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting 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。
CN202011115170.6A 2020-10-19 2020-10-19 一种基于摘要算法的数据防篡改的方法及其系统 Active CN112149186B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112291375B (zh) * 2020-12-30 2021-03-26 杭州海康威视数字技术股份有限公司 物联网设备安全访问控制方法、物联网设备及物联网系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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 珠海横琴新区润成科技股份有限公司 一种个人电子签名的安全加密方法和系统

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