CN112434322B - 数据加密方法、装置、计算机设备及计算机可读存储介质 - Google Patents

数据加密方法、装置、计算机设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112434322B
CN112434322B CN202011395775.5A CN202011395775A CN112434322B CN 112434322 B CN112434322 B CN 112434322B CN 202011395775 A CN202011395775 A CN 202011395775A CN 112434322 B CN112434322 B CN 112434322B
Authority
CN
China
Prior art keywords
random number
encryption
data
target random
value
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
CN202011395775.5A
Other languages
English (en)
Other versions
CN112434322A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Shenzhen Huantai Technology Co Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Shenzhen Huantai 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 Guangdong Oppo Mobile Telecommunications Corp Ltd, Shenzhen Huantai Technology Co Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202011395775.5A priority Critical patent/CN112434322B/zh
Publication of CN112434322A publication Critical patent/CN112434322A/zh
Application granted granted Critical
Publication of CN112434322B publication Critical patent/CN112434322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/602Providing cryptographic facilities or services
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种数据加密方法、装置、计算机设备及计算机可读存储介质,属于数据加密技术领域。所述方法包括:获取前端应用在运行过程中产生的待存储的整数数据;生成目标随机数,并利用预设的加密算法和所述目标随机数对所述整数数据进行数据加密,得到第一加密值和第二加密值;将所述目标随机数、所述第一加密值和所述第二加密值作为所述整数数据对应的加密数据存入堆内存。本申请实施例提供的技术方案能够提高前端应用的数据安全性。

Description

数据加密方法、装置、计算机设备及计算机可读存储介质
技术领域
本申请涉及数据加密技术领域,特别是涉及一种数据加密方法、装置、计算机设备及计算机可读存储介质。
背景技术
随着智能终端的普及,越来越多的前端应用被开发出来供用户使用,其中,网页应用就是一种典型的前端应用。以网页游戏为例,网页游戏作为一种网页应用,是指运行在浏览器当中的游戏,与普通的客户端游戏不同,网页游戏不需要特别的下载和安装,可以直接在浏览器中打开并运行。
很多前端应用在运行过程中产生的数据不会在后端服务器存储,以网页游戏为例,纯前端的网页游戏以及实时性要求较高的网页游戏在运行过程中产生的数据都是前端负责存储以及数据演算的。
由于前端应用在运行过程中产生的数据在前端存储,导致所存储的数据很容易被非法抓取或者修改,前端应用的数据安全性较低。
发明内容
基于此,本申请实施例提供了一种数据加密方法、装置、计算机设备及计算机可读存储介质,可以提高前端应用的数据安全性。
第一方面,提供了一种数据加密方法,该方法包括:
获取前端应用在运行过程中产生的待存储的整数数据;
生成目标随机数,并利用预设的加密算法和所述目标随机数对所述整数数据进行数据加密,得到第一加密值和第二加密值;
将所述目标随机数、所述第一加密值和所述第二加密值作为所述整数数据对应的加密数据存入堆内存。
第二方面,提供了一种数据加密装置,该装置包括:
第一获取模块,用于获取前端应用在运行过程中产生的待存储的整数数据;
加密模块,用于生成目标随机数,并利用预设的加密算法和所述目标随机数对所述整数数据进行数据加密,得到第一加密值和第二加密值;
存储模块,用于将所述目标随机数、所述第一加密值和所述第二加密值作为所述整数数据对应的加密数据存入堆内存。
第三方面,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该计算机程序被该处理器执行时实现如上述第一方面任一所述的数据加密方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面任一所述的数据加密方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过获取前端应用在运行过程中产生的待存储的整数数据,而后,生成目标随机数,并利用预设的加密算法和该目标随机数对整数数据进行数据加密,得到第一加密值和第二加密值,将该目标随机数、第一加密值和第二加密值作为整数数据对应的加密数据存入堆内存,这样,对前端应用在运行过程中产生的整数数据先进行加密得到加密数据,再将该加密数据存储至堆内存,从而即使存储的数据被非法抓取,对方抓取到的也只是加密数据,并不能直观的获取到加密前的整数数据,因此也无法对加密前的整数数据进行修改,故而本申请实施例提升了前端应用在运行过程中产生的整数数据的数据安全性。
附图说明
图1为本申请实施例提供的一种示例性地网页游戏的数据信息的示意图;
图2为本申请实施例提供的一种数据加密方法的流程图;
图3为本申请实施例提供的一种示例性地加密数据在内存中的存储示意图;
图4为本申请实施例提供的另一种数据加密方法的流程图;
图5为本申请实施例提供的步骤402的流程图;
图6为本申请实施例提供的一种示例性地整数数据和加密数据在内存中的存储形式示意图;
图7为本申请实施例提供的终端对加密数据进行解密的流程图;
图8为本申请实施例提供的步骤703的流程图;
图9为本申请实施例提供的另一种数据加密方法的流程图;
图10为本申请实施例提供的一种数据加密装置的框图;
图11为本申请实施例提供的一种计算机设备的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
传统技术中,很多前端应用在运行过程中产生的数据不会在后端服务器存储,以网页游戏为例,纯前端的网页游戏以及实时性要求较高的网页游戏在运行过程中产生的数据都是前端负责存储以及数据演算的。
由于前端语言采用解释型语言JavaScript(以下简称为JS),在JS中,整数为基本数据类型,直接存储在栈内存中。以网页游戏为例,参见图1,图1为一种示例性地网页游戏的数据信息的示意图,该网页游戏在前端运行过程中产生的整数数据“19”、“50”、“45”则直接以变量的形式存储在栈内存中。这样,一些内存抓取工具很容易就能发现这些整数数据,并对其进行修改,导致网页游戏的数据安全性较低。
鉴于此,本申请实施例提出一种数据加密方法,在该方法中,通过获取前端应用在运行过程中产生的待存储的整数数据,而后,生成目标随机数,并利用预设的加密算法和该目标随机数对整数数据进行数据加密,得到第一加密值和第二加密值,将该目标随机数、第一加密值和第二加密值作为整数数据对应的加密数据存入堆内存,这样,对前端应用在运行过程中产生的整数数据先进行加密得到加密数据,再将该加密数据存储至堆内存,从而即使存储的数据被非法抓取,对方抓取到的也只是加密数据,并不能直观的获取到加密前的整数数据,因此也无法对加密前的整数数据进行修改,所以本申请实施例提升了前端应用在运行过程中产生的整数数据的数据安全性。
需要说明的是,本申请实施例提供的数据加密方法,其执行主体可以是数据加密装置,该数据加密装置可以通过软件、硬件或者软硬件结合的方式实现成为终端的部分或者全部。下述方法实施例中,均以执行主体是终端为例来进行说明,其中,终端可以是个人计算机、笔记本电脑、媒体播放器、智能电视、智能手机、平板电脑、便携式可穿戴设备或者车载设备等,在此对终端的类型不做具体限制。
请参考图2,其示出了本申请实施例提供的一种数据加密方法的流程图。如图2所示,该数据加密方法可以包括步骤201、步骤202和步骤203:
步骤201,终端获取前端应用在运行过程中产生的待存储的整数数据。
前端应用是指基于浏览器运行的应用程序,一般通过JS代码开发。前端应用可以包括网页应用、快应用以及小程序,等等。以网页应用为例,网页应用不需要用户下载安装,在浏览器中即可运行,网页应用例如网页游戏、网页购物应用、网页打车应用,等等。
前端应用在运行过程中,会产生很多需要存储的数据,若前端应用为纯前端的应用,或者前端应用对实时性要求比较高,终端则自行存储这些数据,本申请实施例中,整数数据可以是前端应用在运行过程中产生的需要终端自行存储的数据中的整数部分。例如,前端应用和用户交互过程中会产生交互数据,终端需要将该交互数据存储至终端的内存中,本申请实施例的整数数据则可以是该交互数据中的整数部分。
前端应用在终端运行的过程中,终端则可以获取到其运行过程中产生的需要终端自行存储的整数数据。
步骤202,终端生成目标随机数,并利用预设的加密算法和目标随机数对整数数据进行数据加密,得到第一加密值和第二加密值。
目标随机数为终端随机生成的一个固定长度的整数。本申请实施例中,终端可以调用预设函数生成一个随机数,该预设函数例如可以是Math.random,终端对该随机数进行放大、取整等处理后,则得到该目标随机数。
终端生成目标随机数后,终端可以采用两种不同的运算规则对目标随机数和整数数据进行运算,得到第一加密值和第二加密值。例如,两种不同的运算规则为运算规则A和运算规则B,终端则采用运算规则A对目标随机数和整数数据进行运算得到第一加密值、采用运算规则B对目标随机数和整数数据进行运算得到第二加密值。
本申请实施例中,运算规则可以是加、减、乘、除、平方和、方差、平均值等运算规则中的任意一种或任意多种的组合,在此不做具体限制。
步骤203,终端将目标随机数、第一加密值和第二加密值作为整数数据对应的加密数据存入堆内存。
堆内存和栈内存均是前端应用在运行时终端对其分配的内存区。栈内存主要存放基本数据类型(Undefined、Null、Boolean、Number和String)的数据,堆内存主要存放复杂数据类型(也称为引用类型)的数据,如数组对象、Object对象。
本申请实施例中,终端生成目标随机数,并计算得到第一加密值和第二加密值后,终端将目标随机数、第一加密值和第二加密值作为一个Object对象存储在对前端应用对应的堆内存中,也即,将整数数据对应的加密数据作为一个Object对象存储在前端应用对应的堆内存中,并将该Object对象在堆内存中的地址作为变量存储在栈内存中。
参见图3,图3为一种示例性地加密数据在内存中的存储示意图。终端利用预设的加密算法和目标随机数rand对整数数据进行数据加密,得到第一加密值n和第二加密值x后,如图3所示,终端将整数数据的加密数据{rand,n,x}作为Object1存储在对前端应用对应的堆内存中,终端将该Object1在堆内存中的地址以变量的形式存储在栈内存中,图3所示的栈内存中,a为该变量的变量名,b为变量a的值,即Object1在堆内存中的地址。
上述实施例通过获取前端应用在运行过程中产生的待存储的整数数据,而后,生成目标随机数,并利用预设的加密算法和该目标随机数对整数数据进行数据加密,得到第一加密值和第二加密值,将该目标随机数、第一加密值和第二加密值作为整数数据对应的加密数据存入堆内存,这样,对前端应用在运行过程中产生的整数数据先进行加密得到加密数据,再将该加密数据存储至堆内存,从而即使存储的数据被非法抓取,对方抓取到的也只是加密数据,并不能直观的获取到加密前的整数数据,因此也无法对加密前的整数数据进行修改,故而本申请实施例提升了前端应用在运行过程中产生的整数数据的数据安全性。
在一个实施例中,基于上述图2所示的实施例,参见图4,本实施例涉及的是终端如何利用预设的加密算法和目标随机数对整数数据进行数据加密的过程。如图4所示,步骤202可以包括步骤401和步骤402:
步骤401,终端生成目标随机数。
步骤402,终端对目标随机数和整数数据进行数学运算,得到第一加密值和第二加密值。
终端生成目标随机数的过程可以参见上述实施例。本申请实施例中,终端可以采用两种不同的运算规则对目标随机数和整数数据进行运算,每种运算规则均为数学运算,且该数学运算至少包括异或运算。
例如,两种不同的运算规则为运算规则A和运算规则B,运算规则A和运算规则B均为数学运算,且运算规则A和运算规则B至少包括异或运算;终端则采用运算规则A对目标随机数和整数数据进行运算得到第一加密值、采用运算规则B对目标随机数和整数数据进行运算得到第二加密值。
本申请实施例中,加密算法为包括异或运算的数学运算,异或运算相较于其他数学运算运算量较小,从而可以降低终端的加密运算量,降低终端的数据存储耗时,从而避免对前端应用造成时延影响。
在步骤402一种可能的实施方式中,参见图5,步骤402可以包括如图5所示的步骤501、步骤502和步骤503:
步骤501,终端获取整数最大值,并根据整数最大值确定第一系数以及第二系数。
整数最大值可以是JS能表示的最大整数,整数最大值可以为一个固定数值,其可以存储在终端的预设位置,终端从该预设位置读取该整数最大值,再根据整数最大值和目标随机数确定第一系数以及第二系数,其中,第一系数和第二系数的和为一。
在一种可能的实施方式中,终端可以执行如下步骤A1和步骤A2实现根据整数最大值确定第一系数以及第二系数的过程:
步骤A1,终端计算目标随机数和整数最大值的比值,将比值确定为第一系数。
步骤A2,终端计算一与第一系数的差值,将差值确定为第二系数。
在另一种可能的实施方式中,终端计算目标随机数和整数最大值的和值,采用目标随机数除以该和值则得到第一系数,采用一减去该第一系数则得到第二系数,在此对终端确定第一系数和第二系数的方式不做具体限制。
步骤502,终端对目标随机数和整数数据进行异或运算得到第一运算结果,并将第一运算结果和第一系数相乘,得到第一加密值。
本申请实施例中,终端可以通过如下公式1计算第一加密值n:
其中,n为第一加密值,I为待存储的整数数据,rand为目标随机数,L1为第一系数。
步骤503,终端对目标随机数乘预设倍数,得到相乘结果,将该相乘结果和整数数据相加,得到相加结果,并将相加结果和目标随机数进行异或运算,得到第二运算结果,将第二运算结果和第二系数相乘,得到第二加密值。
终端可以通过如下公式2计算第二加密值x:
其中,x为第二加密值,I为待存储的整数数据,rand为目标随机数,L2为第二系数。
这样,终端通过上述公式1和公式2则计算得到第一加密值和第二加密值,终端将整数数据的加密数据{rand,n,x}作为Object1存储在前端应用对应的堆内存中,实现对整数数据的加密存储。
参见图6,图6为一种示例性地整数数据和对应的加密数据在内存中存储形式的对比示意图。如图6所示,传统技术中,若整数数据为20,终端则直接将20存在栈内存中;本申请实施例中,整数数据为20,终端根据生成的目标随机数rand(35)对20进行加密,得到第一加密值n(96)和第二加密值x(68)后,将rand、n、x作为一个Object对象存储在对前端应用对应的堆内存中。
本申请实施例中,终端根据整数最大值和目标随机数确定第一系数和第二系数,再根据公式1和公式2进行简单的异或运算即可实现对整数数据的加密,在实际应用过程中,相较于复杂的对称加密算法和非对称加密算法,对同样的整数数据进行1000次加密,采用AES CBC模式的对称加密算法耗时0.51秒,采用RSA 256模式的非对称加密算法耗时190.31秒,而采用本申请实施例的数据加密方法的耗时0.11秒,由此可见,本申请实施例可以降低整数数据的加密耗时。这样,对于实时性要求比较高的前端应用,例如,实时性要求比较高的网页游戏,本申请实施例在提升前端应用的数据安全性的同时,不会增加前端应用的时延,避免引起前端应用的卡顿,保证了用户体验。
在一个实施例中,基于图2所示的实施例,本实施例涉及的是终端如何对加密数据进行解密的过程。参见图7,本申请实施例数据加密方法还可以包括图7所示的步骤701、步骤702和步骤703:
步骤701,终端在接收到针对整数数据的调用指令后,获取加密数据在堆内存中的存储地址。
本申请实施例中,终端或者后台服务器若需要使用该整数数据,则调用该整数数据,终端在接收到针对整数数据的调用指令后,获取加密数据在堆内存中的存储地址。
本申请实施例中,整数数据对应的加密数据作为一个Object对象存储在堆内存中,该Object对象在堆内存中以变量的形式存储,终端可以获取该Object对象对应的变量名,该变量名相当于加密数据在堆内存中的存储地址。
在另一种可能的实施方式中,终端也可以在栈内存中获取该Object对象在堆内存中的存储地址。
步骤702,终端根据存储地址获取目标随机数、第一加密值和第二加密值。
终端获取加密数据在堆内存中的存储地址后,则从该存储地址中读取目标随机数rand、第一加密值n和第二加密值x。
步骤703,终端采用目标随机数对第一加密值和第二加密值中的至少一个进行解密,得到整数数据,并响应于调用指令调用整数数据。
终端根据目标随机数rand、第一加密值n和第二加密值x对上述实施例的加密过程进行逆运算,即终端将读取到的rand、n、x代入上述公式1和/或公式2,则可以得到整数数据I。
在步骤703一种可能的实施方式中,参见图8,终端可以通过执行如图8所示的步骤7031、步骤7032、步骤7033和步骤7034来实现步骤703中终端采用目标随机数对第一加密值和第二加密值中的至少一个进行解密的过程:
步骤7031,终端采用目标随机数对第一加密值进行解密,得到第一解密结果。
终端将目标随机数rand、第一加密值n代入上述公式1中,由于第一系数L1已知,因此终端得到第一解密数据,即得到一个I值。
步骤7032,终端采用目标随机数对第二加密值进行解密,得到第二解密结果。
终端将目标随机数rand、第二加密值x代入上述公式2中,由于第二系数L2已知,因此终端得到第二解密数据,即得到另一个I值。
步骤7033,终端检测第一解密结果和第二解密结果是否相同。
步骤7034,若第一解密结果和第二解密结果相同,终端则将第一解密结果或第二解密结果确定为整数数据。
若第一解密结果和第二解密结果相同,终端则确定加密数据未被修改,则将第一解密结果和述第二解密结果中的任意一个确定为整数数据。这样,通过比较第一解密结果和第二解密结果是否相同,对解密结果进行验证,提升了解密的准确性。
而若第一解密结果和第二解密结果不相同,终端则确定加密数据被修改,这样,若加密数据被修改,加密前的整数数据也无法还原,从而对整数数据起到了很好的保护效果。
在步骤703一种可能的实施方式中,终端采用目标随机数对第一加密值和第二加密值中的至少一个进行解密,得到整数数据,还可以是终端采用目标随机数对第一加密值进行解密,得到整数数据,或者,采用目标随机数对第二加密值进行解密,得到整数数据。即,终端将目标随机数rand、第一加密值n代入上述公式1中,得到整数数据即可,或者,终端也可以将目标随机数rand、第二加密值x代入上述公式2中得到整数数据。这样,可以快速对加密数据进行解密,快速响应针对整数数据的调用指令。
在一个实施例中,请参考图9,其示出了本申请实施例提供的一种示例性的数据加密方法的流程图,该方法可以应用于终端中。如图9所示,该方法可以包括以下步骤:
步骤1001,终端获取前端应用在运行过程中产生的待存储的整数数据。
步骤1002,终端生成目标随机数以及获取整数最大值,并根据整数最大值确定第一系数以及第二系数。
其中,终端可以计算目标随机数和整数最大值的比值,将比值确定为第一系数;计算一与第一系数的差值,将差值确定为第二系数。
步骤1003,终端对目标随机数和整数数据进行异或运算得到第一运算结果,并将第一运算结果和第一系数相乘,得到第一加密值。
步骤1004,终端对目标随机数乘预设倍数,得到相乘结果,将相乘结果和整数数据相加,得到相加结果,并将相加结果和目标随机数进行异或运算,得到第二运算结果,将第二运算结果和第二系数相乘,得到第二加密值。
步骤1005,终端将目标随机数、第一加密值和第二加密值作为整数数据对应的加密数据存入堆内存。
步骤1006,终端在接收到针对整数数据的调用指令后,获取加密数据在堆内存中的存储地址。
步骤1007,终端根据存储地址获取目标随机数、第一加密值和第二加密值。
步骤1008,终端采用目标随机数对第一加密值进行解密,得到第一解密结果。
步骤1009,终端采用目标随机数对第二加密值进行解密,得到第二解密结果。
步骤1010,终端检测第一解密结果和第二解密结果是否相同。
步骤1011,若第一解密结果和第二解密结果相同,终端则将第一解密结果或第二解密结果确定为整数数据,并响应于调用指令调用整数数据。
应该理解的是,虽然图2-9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
请参考图10,其示出了本申请实施例提供的一种数据加密装置的框图,该数据加密装置可以配置于终端中。如图10所示,该数据加密装置可以包括:
第一获取模块10,用于获取前端应用在运行过程中产生的待存储的整数数据;
加密模块20,用于生成目标随机数,并利用预设的加密算法和所述目标随机数对所述整数数据进行数据加密,得到第一加密值和第二加密值;
存储模块30,用于将所述目标随机数、所述第一加密值和所述第二加密值作为所述整数数据对应的加密数据存入堆内存。
在一个实施例中,加密模块20,包括:
加密单元,用于对所述目标随机数和所述整数数据进行数学运算,得到所述第一加密值和所述第二加密值,所述数学运算至少包括异或运算。
在一个实施例中,所述加密单元具体用于获取整数最大值,并根据所述整数最大值确定第一系数以及第二系数,所述第一系数和所述第二系数的和为一;对所述目标随机数和所述整数数据进行异或运算得到第一运算结果,并将所述第一运算结果和所述第一系数相乘,得到所述第一加密值;对所述目标随机数乘预设倍数,得到相乘结果,将所述相乘结果和所述整数数据相加,得到相加结果,并将所述相加结果和所述目标随机数进行异或运算,得到第二运算结果,将所述第二运算结果和所述第二系数相乘,得到所述第二加密值。
在一个实施例中,所述加密单元具体用于计算所述目标随机数和所述整数最大值的比值,将所述比值确定为所述第一系数;计算一与所述第一系数的差值,将所述差值确定为所述第二系数。
在一个实施例中,所述装置还包括:
第二获取模块,用于在接收到针对所述整数数据的调用指令后,获取所述加密数据在所述堆内存中的存储地址;
第三获取模块,用于根据所述存储地址获取所述目标随机数、所述第一加密值和所述第二加密值;
解密模块,用于采用所述目标随机数对所述第一加密值和所述第二加密值中的至少一个进行解密,得到所述整数数据,并响应于所述调用指令调用所述整数数据。
在一个实施例中,所述解密模块具体用于采用所述目标随机数对所述第一加密值进行解密,得到第一解密结果;采用所述目标随机数对所述第二加密值进行解密,得到第二解密结果;检测所述第一解密结果和所述第二解密结果是否相同;若所述第一解密结果和所述第二解密结果相同,则将所述第一解密结果或所述第二解密结果确定为所述整数数据。
在一个实施例中,所述解密模块具体用于采用所述目标随机数对所述第一加密值进行解密,得到所述整数数据,或者,采用所述目标随机数对所述第二加密值进行解密,得到所述整数数据。
本申请实施例提供的数据加密装置,可以实现上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
关于数据加密装置的具体限定可以参见上文中对于数据加密方法的限定,在此不再赘述。上述数据加密装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于终端中的处理器中,也可以以软件形式存储于终端中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在本申请的一个实施例中,提供了一种计算机设备,该计算机设备可以为终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器和存储器。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机程序被处理器执行时以实现本申请实施例提供的一种数据加密方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在本申请的一个实施例中,提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取前端应用在运行过程中产生的待存储的整数数据;
生成目标随机数,并利用预设的加密算法和所述目标随机数对所述整数数据进行数据加密,得到第一加密值和第二加密值;
将所述目标随机数、所述第一加密值和所述第二加密值作为所述整数数据对应的加密数据存入堆内存。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
对所述目标随机数和所述整数数据进行数学运算,得到所述第一加密值和所述第二加密值,所述数学运算至少包括异或运算。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
获取整数最大值,并根据所述整数最大值确定第一系数以及第二系数,所述第一系数和所述第二系数的和为一;
对所述目标随机数和所述整数数据进行异或运算得到第一运算结果,并将所述第一运算结果和所述第一系数相乘,得到所述第一加密值;
对所述目标随机数乘预设倍数,得到相乘结果,将相乘结果和所述整数数据相加,得到相加结果,并将所述相加结果和所述目标随机数进行异或运算,得到第二运算结果,将所述第二运算结果和所述第二系数相乘,得到所述第二加密值。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
计算所述目标随机数和所述整数最大值的比值,将所述比值确定为所述第一系数;
计算一与所述第一系数的差值,将所述差值确定为所述第二系数。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
在接收到针对所述整数数据的调用指令后,获取所述加密数据在所述堆内存中的存储地址;
根据所述存储地址获取所述目标随机数、所述第一加密值和所述第二加密值;
采用所述目标随机数对所述第一加密值和所述第二加密值中的至少一个进行解密,得到所述整数数据,并响应于所述调用指令调用所述整数数据。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
采用所述目标随机数对所述第一加密值进行解密,得到第一解密结果;
采用所述目标随机数对所述第二加密值进行解密,得到第二解密结果;
检测所述第一解密结果和所述第二解密结果是否相同;
若所述第一解密结果和所述第二解密结果相同,则将所述第一解密结果或所述第二解密结果确定为所述整数数据。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
采用所述目标随机数对所述第一加密值进行解密,得到所述整数数据,或者,采用所述目标随机数对所述第二加密值进行解密,得到所述整数数据。
本申请实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在本申请的一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取前端应用在运行过程中产生的待存储的整数数据;
生成目标随机数,并利用预设的加密算法和所述目标随机数对所述整数数据进行数据加密,得到第一加密值和第二加密值;
将所述目标随机数、所述第一加密值和所述第二加密值作为所述整数数据对应的加密数据存入堆内存。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对所述目标随机数和所述整数数据进行数学运算,得到所述第一加密值和所述第二加密值,所述数学运算至少包括异或运算。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取整数最大值,并根据所述整数最大值确定第一系数以及第二系数,所述第一系数和所述第二系数的和为一;
对所述目标随机数和所述整数数据进行异或运算得到第一运算结果,并将所述第一运算结果和所述第一系数相乘,得到所述第一加密值;
对所述目标随机数乘预设倍数,得到相乘结果,将相乘结果和所述整数数据相加,得到相加结果,并将所述相加结果和所述目标随机数进行异或运算,得到第二运算结果,将所述第二运算结果和所述第二系数相乘,得到所述第二加密值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
计算所述目标随机数和所述整数最大值的比值,将所述比值确定为所述第一系数;
计算一与所述第一系数的差值,将所述差值确定为所述第二系数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在接收到针对所述整数数据的调用指令后,获取所述加密数据在所述堆内存中的存储地址;
根据所述存储地址获取所述目标随机数、所述第一加密值和所述第二加密值;
采用所述目标随机数对所述第一加密值和所述第二加密值中的至少一个进行解密,得到所述整数数据,并响应于所述调用指令调用所述整数数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
采用所述目标随机数对所述第一加密值进行解密,得到第一解密结果;
采用所述目标随机数对所述第二加密值进行解密,得到第二解密结果;
检测所述第一解密结果和所述第二解密结果是否相同;
若所述第一解密结果和所述第二解密结果相同,则将所述第一解密结果或所述第二解密结果确定为所述整数数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
采用所述目标随机数对所述第一加密值进行解密,得到所述整数数据,或者,采用所述目标随机数对所述第二加密值进行解密,得到所述整数数据。
本实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(RO多)、可编程RO多(PRO多)、电可编程RO多(EPRO多)、电可擦除可编程RO多(EEPRO多)或闪存。易失性存储器可包括随机存取存储器(RA多)或者外部高速缓冲存储器。作为说明而非局限,RA多以多种形式可得,诸如静态RA多(SRA多)、动态RA多(DRA多)、同步DRA多(SDRA多)、双数据率SDRA多(DDRSDRA多)、增强型SDRA多(ESDRA多)、同步链路(Sy多chli多k)DRA多(SLDRA多)、存储器总线(Ra多bus)直接RA多(RDRA多)、直接存储器总线动态RA多(DRDRA多)、以及存储器总线动态RA多(RDRA多)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据加密方法,其特征在于,所述方法包括:
获取前端应用在运行过程中产生的待存储的整数数据;
生成目标随机数,并获取整数最大值;
根据所述整数最大值确定第一系数以及第二系数,所述第一系数和所述第二系数的和为一;
对所述目标随机数和所述整数数据进行异或运算得到第一运算结果,并将所述第一运算结果和所述第一系数相乘,得到第一加密值;
对所述目标随机数乘预设倍数,得到相乘结果,将所述相乘结果和所述整数数据相加,得到相加结果,并将所述相加结果和所述目标随机数进行异或运算,得到第二运算结果,将所述第二运算结果和所述第二系数相乘,得到第二加密值;
将所述目标随机数、所述第一加密值和所述第二加密值作为一个Object对象存入堆内存。
2.根据权利要求1所述的数据加密方法,其特征在于,所述根据所述整数最大值确定第一系数以及第二系数,包括:
计算所述目标随机数和所述整数最大值的比值,将所述比值确定为所述第一系数;
计算一与所述第一系数的差值,将所述差值确定为所述第二系数。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到针对所述整数数据的调用指令后,获取所述Object对象在所述堆内存中的存储地址;
根据所述存储地址获取所述目标随机数、所述第一加密值和所述第二加密值;
采用所述目标随机数对所述第一加密值和所述第二加密值中的至少一个进行解密,得到所述整数数据,并响应于所述调用指令调用所述整数数据。
4.根据权利要求3所述的方法,其特征在于,所述采用所述目标随机数对所述第一加密值和所述第二加密值中的至少一个进行解密,得到所述整数数据,包括:
采用所述目标随机数对所述第一加密值进行解密,得到第一解密结果;
采用所述目标随机数对所述第二加密值进行解密,得到第二解密结果;
检测所述第一解密结果和所述第二解密结果是否相同;
若所述第一解密结果和所述第二解密结果相同,则将所述第一解密结果或所述第二解密结果确定为所述整数数据。
5.根据权利要求3所述的方法,其特征在于,所述采用所述目标随机数对所述第一加密值和所述第二加密值中的至少一个进行解密,得到所述整数数据,包括:
采用所述目标随机数对所述第一加密值进行解密,得到所述整数数据,或者,采用所述目标随机数对所述第二加密值进行解密,得到所述整数数据。
6.一种数据加密装置,其特征在于,所述装置包括:
第一获取模块,用于获取前端应用在运行过程中产生的待存储的整数数据;
加密模块,用于生成目标随机数,并获取整数最大值;根据所述整数最大值确定第一系数以及第二系数;对所述目标随机数和所述整数数据进行异或运算得到第一运算结果,并将所述第一运算结果和所述第一系数相乘,得到第一加密值;对所述目标随机数乘预设倍数,得到相乘结果,将所述相乘结果和所述整数数据相加,得到相加结果,并将所述相加结果和所述目标随机数进行异或运算,得到第二运算结果,将所述第二运算结果和所述第二系数相乘,得到第二加密值;所述第一系数和所述第二系数的和为一;
存储模块,用于将所述目标随机数、所述第一加密值和所述第二加密值作为一个Object对象存入堆内存。
7.根据权利要求6所述的装置,其特征在于,所述加密模块具体用于计算所述目标随机数和所述整数最大值的比值,将所述比值确定为所述第一系数;计算一与所述第一系数的差值,将所述差值确定为所述第二系数。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于在接收到针对所述整数数据的调用指令后,获取所述Object对象在所述堆内存中的存储地址;
第三获取模块,用于根据所述存储地址获取所述目标随机数、所述第一加密值和所述第二加密值;
解密模块,用于采用所述目标随机数对所述第一加密值和所述第二加密值中的至少一个进行解密,得到所述整数数据,并响应于所述调用指令调用所述整数数据。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5任一所述的数据加密方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一所述的数据加密方法。
CN202011395775.5A 2020-12-03 2020-12-03 数据加密方法、装置、计算机设备及计算机可读存储介质 Active CN112434322B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011395775.5A CN112434322B (zh) 2020-12-03 2020-12-03 数据加密方法、装置、计算机设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011395775.5A CN112434322B (zh) 2020-12-03 2020-12-03 数据加密方法、装置、计算机设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112434322A CN112434322A (zh) 2021-03-02
CN112434322B true CN112434322B (zh) 2024-05-07

Family

ID=74691782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011395775.5A Active CN112434322B (zh) 2020-12-03 2020-12-03 数据加密方法、装置、计算机设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112434322B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117519661A (zh) * 2021-12-29 2024-02-06 上海捷信医药科技股份有限公司 一种epro软件内的小程序系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103258152A (zh) * 2012-02-14 2013-08-21 汤姆森特许公司 执行包括已加密指令的软件应用程序的系统、装置和方法
CN105703901A (zh) * 2016-03-25 2016-06-22 广东欧珀移动通信有限公司 加密数据输入方法及加密数据输入装置
CN106850220A (zh) * 2017-02-22 2017-06-13 腾讯科技(深圳)有限公司 数据加密方法、数据解密方法及装置
CN107038383A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种数据处理的方法和设备
CN107423630A (zh) * 2017-07-31 2017-12-01 腾讯科技(深圳)有限公司 数据处理方法和装置
CN108363580A (zh) * 2018-03-12 2018-08-03 平安普惠企业管理有限公司 应用程序安装方法、装置、计算机设备和存储介质
CN110417543A (zh) * 2018-04-27 2019-11-05 腾讯科技(深圳)有限公司 一种数据加密方法、装置和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103258152A (zh) * 2012-02-14 2013-08-21 汤姆森特许公司 执行包括已加密指令的软件应用程序的系统、装置和方法
CN107038383A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种数据处理的方法和设备
CN105703901A (zh) * 2016-03-25 2016-06-22 广东欧珀移动通信有限公司 加密数据输入方法及加密数据输入装置
CN106850220A (zh) * 2017-02-22 2017-06-13 腾讯科技(深圳)有限公司 数据加密方法、数据解密方法及装置
CN107423630A (zh) * 2017-07-31 2017-12-01 腾讯科技(深圳)有限公司 数据处理方法和装置
CN108363580A (zh) * 2018-03-12 2018-08-03 平安普惠企业管理有限公司 应用程序安装方法、装置、计算机设备和存储介质
CN110417543A (zh) * 2018-04-27 2019-11-05 腾讯科技(深圳)有限公司 一种数据加密方法、装置和存储介质

Also Published As

Publication number Publication date
CN112434322A (zh) 2021-03-02

Similar Documents

Publication Publication Date Title
US20210312334A1 (en) Model parameter training method, apparatus, and device based on federation learning, and medium
US11163907B2 (en) Decentralized token table generation
CN107038383B (zh) 一种数据处理的方法和设备
US10726108B2 (en) Protecting the input/output of modular encoded white-box RSA
KR101657062B1 (ko) 화이트―박스 구현
US8619977B2 (en) Representation change of a point on an elliptic curve
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
US10235506B2 (en) White-box modular exponentiation
US20210152331A1 (en) Protecting polynomial hash functions from external monitoring attacks
CN111475690B (zh) 字符串的匹配方法和装置、数据检测方法、服务器
US10140437B2 (en) Array indexing with modular encoded values
CN112434322B (zh) 数据加密方法、装置、计算机设备及计算机可读存储介质
CN113067816A (zh) 数据加密方法及装置
KR101731645B1 (ko) 오류 주입 공격들을 대비하여 보호되는 데이터 처리 방법 및 관련 장치
US10075290B2 (en) Operator lifting in cryptographic algorithm
WO2024086243A1 (en) Protection of polynomial cryptographic operations against side-channel attacks with change-of-variable transformations
EP3249520A1 (en) Computing a secure elliptic curve scalar multiplication using an unsecured and secure environment
CN117134900A (zh) 一种实现非对称加密的结构及控制方法
US10068070B2 (en) White-box elliptic curve point multiplication
CN114221753B (zh) 密钥数据处理方法和电子设备
US9942038B2 (en) Modular exponentiation using randomized addition chains
CN114254335A (zh) 基于gpu的加密方法、装置、加密设备及存储介质
WO2023212838A1 (en) Fast signature generation and verification
WO2018152611A1 (en) Elliptic curve cryptography scheme for edwards curves having a differential side-channel attack countermeasure
Sekar et al. Fault-assisted side-channel analysis of HMAC-Streebog

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