CN102238001B - 一种提高数据安全性的方法和装置 - Google Patents
一种提高数据安全性的方法和装置 Download PDFInfo
- Publication number
- CN102238001B CN102238001B CN201010170559.0A CN201010170559A CN102238001B CN 102238001 B CN102238001 B CN 102238001B CN 201010170559 A CN201010170559 A CN 201010170559A CN 102238001 B CN102238001 B CN 102238001B
- Authority
- CN
- China
- Prior art keywords
- data
- key
- data storage
- ciphertext
- codec
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明适用于数据安全领域,提供了一种提高数据安全性的方法和装置,所述方法包括下述步骤:在写入数据时,创建数据存储器,并随机生成数据存储器的密钥;通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中;采用预设的密钥更新策略对数据存储器中存储的密钥进行更新;在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。本发明实施例通过对数据存储器中存储的密钥进行动态的更新,从而增加了外挂获取密钥的难度,进而极大的提高了数据的安全性。
Description
技术领域
本发明属于数据安全领域,尤其涉及一种提高数据安全性的方法和装置。
背景技术
随着网络技术的不断发展,网络游戏已越来越受到用户的青睐。AS3也越来越广泛的用于网络游戏开发中。
其中AS3是ActionScript3.0的简称,ActionScript是Flash的脚本语言。通过ActionScript才能在Flash中创作具有很强交互性的动画,ActionScript3.0是该脚本语言的最新版本。其中Flash是一种交互式矢量多媒体技术,它的前身是Futureplash,是早期网络上流行的矢量动画插件
为了保证网络游戏的正常逻辑,保证网络游戏的公平性,网络游戏中的游戏数据的安全性是非常关键的。现有的大部分网络游戏都受到外挂的干扰。其中外挂是一种非法获取或者篡改游戏数据的应用程序。为了避免外挂对网络游戏的影响,如何提高游戏数据的安全性成为迫切需要解决的问题。
现有技术提供了多种提高AS3中游戏数据安全性的方案。择一简述如下:
请参阅图1,为现有技术提供的提高AS3中数据安全性的原理图。在将游戏数据写入数据容器时,被写入的数据经过编解码器加密后,其密文和密钥一起保存在数据容器里。在读取数据时,数据容器里的数据需先根据密钥采用解码算法解密后才能被读出,这种方法一定程度上提高了AS3中游戏数据的安全性。
但在这种方法中,由于AS3是一种用于Flash开发的脚本语言,其编译后会生成Flash文件,而脚本语言本身存在容易被反编译的缺陷,因此,通过特定工具,完全可以从Flash文件里将其脚本以AS3源代码的形式反编译出来,这样,就可以从源代码中分析出上述方案的基本原理和编解码算法。这样,外挂就可以从内存中取得密钥和加密算法,由于密钥一般是固定的,当外挂需要在内存中搜索一个值时,就可以通过取得的密钥和加密算法计算出该值的密文,然后在内存中就可以搜索到该密文的内存地址,通过对该内存地址中的数据进行非法操作,即可达到篡改游戏数据的目的,因此,现有技术提供的上述方法也不能保证游戏数据的安全性。
另外当外挂修改了内存中的值,甚至即使外挂没有破解加密算法,也可以通过破坏性的修改该值对应的内存,而游戏正常逻辑在通过数据类型封装器读取该值时,并不知道该值已被非法修改过,从而也会导致游戏逻辑被破坏。因此,现有技术中游戏数据的安全性较低。
发明内容
本发明实施例的目的在于提供一种提高数据安全性的方法,旨在解决现有的游戏系统中游戏数据安全性低的问题。
本发明实施例是这样实现的,一种提高数据安全性的方法,所述方法包括下述步骤:
在写入数据时,创建至少两个数据存储器,并随机生成每个数据存储器的密钥,其中一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器存储用于校验读取的数据的密文和密钥;
通过编解码器提供的加密算法分别采用每个数据存储器的密钥对写入的数据进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中;
采用预设的密钥更新策略对数据存储器中存储的密钥进行更新;
在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。
本发明实施例的另一目的在于提供一种提高数据安全性的装置,所述装置包括:
安全管理器,所述安全管理器包括:
多数据存储器创建单元,用于在写入数据时,创建至少两个数据存储器,并随机生成每个数据存储器的密钥,其中一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器存储用于校验读取的数据的密文和密钥;
编解码器,用于在写入数据时,通过加密算法分别采用每个数据存储器的密钥对写入的数据进行加密处理,生成对应的密文,并将对应的密钥和密文存储至对应的数据存储器中,在读取数据时,通过编解码器提供的解密算法采用各数据存储器中的密钥对各数据存储器中的密文进行解密处理,生成对应的明文数据;
密钥更新单元,用于采用预设的密钥更新策略对数据存储器中存储的密钥进行更新。
在本发明实施例中,通过密钥更新策略对数据存储器中存储的密钥进行更新,使得数据存储器中的密钥是动态变化的,从而增加了外挂获取密钥的难度,进而极大的提高了数据的安全性。即使外挂通过某种方式获取了密钥,则由于密钥是动态更新的,因此,在外挂采用获取的密钥调用解密算法对密文进行解密的过程中,密钥可能已经发生了改变,导致解密出错,从而进一步提高了数据的安全性。
附图说明
图1是现有技术提供的提高AS3中数据安全性的原理图;
图2是本发明第一实施例提供的提高数据安全性的方法的实现流程图;
图3是本发明第二实施例提供的提高数据安全性的方法的实现类流程图;
图4是本发明第三实施例提供的提高数据的安全性的方法的实现流程图;
图5是本发明第四实施例提供的提高数据的安全性的方法的实现流程图;
图6是本发明第六实施例提供的提高数据的安全性的方法的实现流程图;
图7是本发明实施例提供的采用本发明的方法后的数据读写时序示例图;
图8是本发明实施例提供的密钥更新的时序示例图;
图9是本发明第一实施例提供的提高数据的安全性的装置的结构框图;
图10是本发明第二实施例提供的提高数据的安全性的装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,在写入数据时,创建数据存储器,并随机生成数据存储器的密钥,通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中,采用预设的密钥更新策略对数据存储器的密钥进行更新,从而极大的增加了密钥获取难度,提高了数据的安全性。
实施例一:
图2示出了本发明第一实施例提供的提高数据安全性的方法的实现流程,详述如下:
在步骤S101中,在写入数据时,创建数据存储器,并随机生成数据存储器的密钥。
其中随机生成数据存储器的密钥的方法可以采用现有技术提供的任意一种方法,如:依次随机取预定个数的0到255之间的整数。然后将这若干个整数当成ASCII码组成一个预定长度的字符串,将组成的预定长度的字符串作为随机生成的数据存储器的密钥。
在步骤S102中,通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中。
其中通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文是指将数据存储器的密钥作为编解码提供的加密算法的输入值,加密算法根据该输入值对写入的数据进行加密处理,得到对应的输出值,该输出值即为生成的密文。
其中编解码器提供的加密算法可以是现有技术中存在的任意一种加密算法,如微型加密算法的修订版(XXTEA算法)等。在此不再一一举例说明。
在步骤S103中,采用预设的密钥更新策略对数据存储器中存储的密钥进行更新。
其中预设的密钥更新策略可以是定时的更新密钥,其中定时的更新密钥的具体步骤是定时的执行以下步骤:
A、通过编解码器提供的解密算法对存储在数据存储器中的密文和密钥进行解密处理,生成明文数据;
B、随机的生成新的数据存储器的密钥。其中随机生成新的数据存储器的密钥的方法可以采用现有技术提供的任意一种方法,在此不再赘述;
C、通过编解码器提供的加密算法采用新的数据存储器的密钥对生成的明文数据进行加密处理,生成新的密文;
D、将生成的新的数据存储器的密钥以及新的密文存储至数据存储器。在步骤S104中,在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。
在本发明实施例中,由于对数据存储器的密钥进行更新,其中更新不仅包括密钥值的更新,由于每次生成新的密钥时,均会重新创建一个变量来存储该新生成的密钥,因此,在对数据存储器的密钥值进行更新时,也同时对密钥的存储地址进行更新,从而增加了外挂获取密钥的难度,进而极大的提高了数据的安全性。即使外挂通过某种方式获取了密钥,则由于密钥是动态更新的,因此,在外挂采用获取的密钥调用解密算法对密文进行解密的过程中,密钥可能已经发生了改变,导致解密出错,从而进一步提高了数据的安全性。
实施例二:
图3示出了本发明第二实施例提供的提高数据安全性的方法的实现类流程,详述如下:
在步骤S201中,在写入数据时,创建至少两个数据存储器,并随机生成每个数据存储器的密钥。
在本发明实施例中,在写入数据时,创建至少两个数据存储器,并为每个数据存储器随机生成密钥。其中一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器中存储用于校验读取的数据的密文和密钥。在本发明实施例中,可以从至少两个数据存储器中任意选择一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器存储用于校验读取的数据的密文和密钥。
在步骤S202中,通过编解码器提供的加密算法分别采用每个数据存储器的密钥对写入的数据进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中。
在本发明实施中,当创建了两个数据存储器,分别为第一数据存储器和第二数据存储器时,则第一数据存储器和第二数据存储器均对应有一密钥,通过编解码器提供的加密算法采用第一数据存储器对应的密钥对写入的数据进行加密处理,生成与第一数据存储器的密钥对应的密文,此时将第一数据存储器的密钥和生成的密文存储至第一数据存储器,同时通过编解码器提供的加密算法采用第二数据存储器对应的密钥对写入的数据进行加密处理,生成与第二数据存储器的密钥对应的密文,此时将第二数据存储器的密钥和生成的密文存储至第二数据存储器。
此时,可以采用第一数据存储器存储用于读取数据的密文和密钥,第二数据存储器存储用于校验读取的数据的密文和密钥。
在步骤S203中,采用预设的密钥更新策略对存储有用于读取数据的密文和密钥的数据存储器中存储的密钥进行更新。其中采用预设的密钥更新策略对存储有用于读取数据的密文和密钥的数据存储器中存储的密钥进行更新的具体步骤如上所述,在此不再赘述。在步骤S204中,在读取数据时,通过编解码器提供的解密算法采用各数据存储器中的密钥对各数据存储器中的密文进行解密处理,生成对应的明文数据。
在本发明实施例中,如果之前创建了两个数据存储器,分别为第一数据存储器和第二数据存储器,则通过编解码器提供的解密算法采用第一数据存储器中的密钥对第一数据存储器中的密文进行解密处理,生成明文数据;再通过编解码器提供的解密算法采用第二数据存储器中的密钥对第二数据存储器中的密文进行解密处理,生成明文数据。
在步骤S205中,将生成的各明文数据进行对比,当各明文数据不一致时,输出异常信息。
在本发明实施例中,通过将生成的各明文数据进行对比,如果一致,则说明写入的数据未被修改过,否则说明写入的数据已被修改,此时,为了告知用户写入的数据已被修改,输出异常信息。
在本发明实施中,在输出异常信息的具体方式可以是输出告警信息等。在具体实现时,可以以接口的形式进行定义,具体的实现可以由用户自行定义。
在本发明实施例中,通过创建至少两个数据存储器,用于存储密钥和密文,在采用密钥对密文进行解密后,生成对应的明文数据,通过对生成的明文数据进行对比,即可判断出生成的明文数据是否一致,进而判断写入的数据是否被修改,当判定生成的明文数据不一致时,即判定写入的数据已被修改,此时输出异常信息,以及时告知用户,从而进一步提高了数据的安全性。
在本发明另一实施例中,在步骤S205之后,该方法还包括下述步骤:
检测输出的异常信息,并根据输出的异常信息进行相应的异常处理。其中相应的异常包括但不限于禁止读写、退出当前程序、关机等。
实施例三:
图4示出了本发明第三实施例提供的提高数据的安全性的方法的实现流程,详述如下:
在步骤S301中,在写入数据时,将写入数据的字符串打散,生成字符数组。
其中将写入数据的字符串打散的方法可以采用现有技术提供的任意一种方法。在本发明实施例中,提供了如下方法:
将写入数据的字符串拆分成字符数组,从而将原本在内存中连在一起的数据分散到不同的内存区域,这样可以增加外挂搜索内存的难度。
在步骤S302中,创建数据存储器,并随机生成数据存储器的密钥。
在本发明实施例中,为了进一步提高数据的安全性,在创建数据存储器时,也可以创建至少两个数据存储器,并随机生成每个数据存储器的密钥。
在步骤S303中,通过编解码器提供的加密算法采用数据存储器的密钥对字符数组进行加密处理,生成对应的密文,并将密钥和密文存储至数据存储器中。
在本发明实施例中,当创建了至少两个数据存储器时,通过编解码器提供的加密算法分别采用每个数据存储器的密钥对字符数组进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中。
在步骤S304中,采用预设的密钥更新策略对数据存储器中存储的密钥进行更新。其具体步骤如上所述,在此不再赘述。
在步骤S305中,在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文字符数组,将生成的明文字符数组合并成字符串。
在本发明另一实施例中,当创建了至少两个数据存储器时,则在读取数据时,通过编解码器提供的解密算法分别采用各数据存储器中的密钥对对应数据存储器中的密文进行解密处理,生成对应的明文字符数组,将生成的明文字符数组合并成字符串后,将各合并后的字符串进行对比,当各字符串不一致时,输出异常信息。当然也可以先将生成的各明文字符数组进行比较,并在各明文字符数组一致时,将各明文字符数组合并成字符串。举例说明如下:
如果创建了两个数据存储器,分别为第一数据存储器和第二数据存储器,则在读取数据时,通过编解码器提供的解密算法采用第一数据存储器中的密钥对第一数据存储器中的密文进行解密处理,生成与第一数据存储器对应的明文字符数组,将生成的明文字符数组合并成与第一数据存储器对应的字符串;再通过编解码器提供的解密算法采用第二数据存储器中的密钥对第二数据存储器中的密文进行解密处理,生成与第二数据存储器对应的明文字符数组,将生成的明文字符数组合并成与第二数据存储器对应的字符串;将与第一数据存储器对应的字符串和与第二数据存储器对应的字符串进行对比,当与第一数据存储器对应的字符串和与第二数据存储器对应的字符串不一致时,输出异常信息。
在本发明实施例中,通过将写入数据的字符串打散加密后存储,从而将原本在内存中连在一起的数据分散存储到不同的内存区域,从而增加了外挂搜索内存中存储的数据的难度,进一步提供了数据的安全性。
实施例四:
图5示出了本发明第四实施例提供的提高数据的安全性的方法的实现流程,详述如下:
在步骤S401中,在写入数据时,通过数据类型封装器将写入数据的数据类型转封装为指定的数据类型。
在本发明实施例中,由于每次写入数据的数据类型可能不一致,如可以为整型、字符串型、布尔型等,为了后续便于对写入的数据进行处理,在写入数据时,先通过数据类型封装器将写入数据的数据类型封装为指定的数据类型。其中数据类型封装器包括但不限于整型封装器、字符串封装器、布尔型封装器等。整型封装器用于将写入数据的数据类型封装为整型,字符串封装器用于将写入数据的数据类型封装为字符串型,布尔型封装器用于将写入数据的数据类型封装为布尔型。当然还可以将写入数据的数据类型封装为其他类型,在此不再一一举例说明。
在步骤S402中,创建数据存储器,并随机生成数据存储器的密钥。
在本发明实施例中,为了进一步提高数据的安全性,在创建数据存储器时,也可以创建至少两个数据存储器,并随机生成每个数据存储器的密钥。
在步骤S403中,通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中。
在本发明实施例中,当创建了至少两个数据存储器时,通过编解码器提供的加密算法分别采用每个数据存储器的密钥对字符数组进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中。
在步骤S404中,采用预设的密钥更新策略对数据存储器中存储的密钥进行更新。其具体步骤如上所述,在此不再赘述。
在步骤S405中,在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。
在本发明另一实施例中,当创建了至少两个数据存储器时,则在读取数据时,通过编解码器提供的解密算法分别采用各数据存储器中的密钥对对应数据存储器中的密文进行解密处理,生成对应的明文数据,将生成的各明文数据进行对比,当各明文数据不一致时,输出异常信息。
实施例五:
本发明第五实施例提供的提高数据的安全性的方法与以上实施例提供的提高数据的安全性的方法的不同之处仅在于,在写入数据时,先销毁之前创建的数据存储器,再创建新的数据存储器,这样,可以最大程度的节省内存空间。
实施例六:
图6示出了本发明第六实施例提供的提高数据的安全性的方法的实现流程,该方法在上述各实施例提供的方法的区别仅在于,还包括下述步骤,以与图2所示的提高数据的安全性的方法相比较为例,其中步骤S501至S503与图1中的步骤S101至S103相同:
在步骤S504中,当数据在客户端与服务器之间进行传递时,将数据存储器中的密钥和密文采用预设的编码算法进行序列化处理,生成序列化字符串。
其中预设的编码算法可以是现有技术提供的任意一种编码算法,如Base64编码算法等。
在步骤S505中,接收方在接收到该序列化字符串后,对该序列化字符串进行反序列化,生成密钥和密文,并将生成的密钥和密文存储至接收方的数据存储器中。
在本发明实施例中,当数据需要在客户端与服务器之间进行传递时,通过在数据的发送方对数据存储器中的密钥和密文进行序列化,在接收方对序列化处理后的密钥和密文进行反序列化,从而提高了数据在传递过程中的安全性。
请参阅图7,为本发明实施例提供的采用本发明的方法后的数据读写时序示例图。
在该示例图中,写数据的时序说明如下:数据类型封装器将写入数据的数据类型封装为字符串;安全管理器销毁之前创建的数据存储器,并将写入的字符串打散,得到字符数组;安全管理器创建数据存储器,并随机生成数据存储器的密钥,通过调用编解码器提供的加密算法(XXTEA加密算法)采用密钥对字符数组进行加密处理,生成密文,并将该密钥和密文存储至数据存储器;接着安全管理器创建用于校验的数据存储器,并随机生成用于校验的数据存储器的密钥,通过调用编解码器提供的加密算法(XXTEA加密算法)采用该密钥对字符数组进行加密处理,生成密文,并将该密钥和密文存储至用于校验的数据存储器。
在该示例图中,读数据的时序说明如下:在读数据时,安全管理器调用编解码器提供的解密算法采用数据存储器中的密钥对密文进行解密处理,生成明文字符数组;接着安全管理器调用编解码器提供的解密算法采用用于校验的数据存储器中的密钥对密文进行解密处理,生成用于校验的明文字符数组;将明文字符数组与用于校验的明文字符数组进行比较,如果一致,则将明文字符数组合并成字符串,并通过数据类型封装器对字符串进行解封装,得到需要读取的数据。
请参阅图8,为本发明实施例提供的密钥更新的时序示例图。简述如下:
预先设置密钥更新的时间间隔,当达到密钥更新的时间间隔时,安全管理器调用编解码器提供的解密算法采用数据存储器中存储的密钥对密文进行解密后,生成明文;接着随机生成密钥,调用编解码器提供的加密算法采用新生成的密钥对生成的明文进行加密,生成对应的密文,将新生成的密钥和密文存储至数据存储器中,从而实现密钥的定时更新。
实施例七:
图9示出了本发明第一实施例提供的提高数据的安全性的装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。其中:
安全管理器1在写入数据时,创建数据存储器,并随机生成数据存储器的密钥。
其中随机生成数据存储器的密钥的方法可以采用现有技术提供的任意一种方法,如:依次随机取预定个数的0到255之间的整数。然后将这若干个整数当成ASCII码组成一个预定长度的字符串,将组成的预定长度的字符串作为随机生成的数据存储器的密钥。
编解码器2在写入数据时,通过加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,在读取数据时,通过解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。
其中编解码器提供的加密算法可以是现有技术中存在的任意一种加密算法,如微型加密算法的修订版(XXTEA算法)等。在此不再一一举例说明。
数据存储器3存储安全管理器1生成的密钥和编解码器生成的密文。
密钥更新单元4采用预设的密钥更新策略对数据存储器3中存储的密钥进行更新。其中预设的密钥更新策略可以是定时的更新密钥。该密钥更新单元4先通过编解码器提供的解密算法对存储在数据存储器中的密文和密钥进行解密处理,生成明文数据,再随机的生成新的数据存储器的密钥,并通过编解码器提供的加密算法采用新的数据存储器的密钥对生成的明文数据进行加密处理,生成新的密文,最后将生成的新的数据存储器的密钥以及新的密文存储至数据存储器中。
实施例八:
图10示出了本发明第二实施例提供的提高数据的安全性的装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该安全管理器1还包括多数据存储器创建单元11和数据比较单元12。其中:
多数据存储器创建单元11在写入数据时,创建至少两个数据存储器,并随机生成每个数据存储器的密钥。其中一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器中存储用于校验读取的数据的密文和密钥。在本发明实施例中,可以从至少两个数据存储器中任意选择一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器存储用于校验读取的数据的密文和密钥。
此时,编解码器2通过加密算法分别采用每个数据存储器的密钥对写入的数据进行加密处理,生成对应的密文,并将对应的密钥和密文存储至对应的数据存储器中。编解码器2在读取数据时,通过编解码器提供的解密算法采用各数据存储器中的密钥对各数据存储器中的密文进行解密处理,生成对应的明文数据。
密钥更新单元4采用预设的密钥更新策略对存储有用于读取数据的密文和密钥的数据存储器中存储的密钥进行更新。
数据比较单元12将编解码器生成的各明文数据进行对比,并在各明文数据不一致时,输出异常信息。
在本发明实施例中,通过创建至少两个数据存储器,用于存储密钥和密文,在采用密钥对密文进行解密后,生成对应的明文数据,通过对生成的明文数据进行对比,即可判断出生成的明文数据是否一致,进而判断写入的数据是否被修改,当判定生成的明文数据不一致时,即判定写入的数据已被修改,此时输出异常信息,以及时告知用户,从而进一步提高了数据的安全性。
在本发明另一实施例中,该装置还包括异常处理器5。该异常处理器5检测输出的异常信息,并对异常信息进行处理。在具体实现时,该异常处理器5可以以接口的形式进行定义,最终可以由使用者根据异常处理的需要实现该接口。
在本发明另一实施例中,安全管理器1还包括数据打散单元13和数据合并单元14。其中:
数据打散单元13在写入数据时,将写入数据的字符串打散,生成字符数组。此时,编解码器2通过加密算法采用数据存储器的密钥对字符数组进行加密处理,生成对应的密文,在读取数据时,通过解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文字符数组。
其中将写入数据的字符串打散的方法可以采用现有技术提供的任意一种方法。本发明实施例中通过将写入数据的字符串拆分成字符数组,从而将写入数据的字符串打散。
数据合并单元14在数据比较单元的比较结果为一致时,将编解码器生成的明文字符数组合并成字符串。
在本发明实施例中,通过将写入数据的字符串打散加密后存储,从而将原本在内存中连在一起的数据分散存储到不同的内存区域,从而增加了外挂搜索内存中存储的数据的难度,进一步提供了数据的安全性。
在本发明另一实施例中,该装置还包括数据类型封装器6。该数据类型封装器6在写入数据时,将写入数据的数据类型转封装为指定的数据类型。其中数据类型封装器包括但不限于整型封装器、字符串封装器、布尔型封装器等。整型封装器用于将写入数据的数据类型封装为整型,字符串封装器用于将写入数据的数据类型封装为字符串型,布尔型封装器用于将写入数据的数据类型封装为布尔型。当然还可以将写入数据的数据类型封装为其他类型,在此不再一一举例说明。
在本发明另一实施例中,该数据类型封装器6还用于封装使用者存取某类型数据时的基本操作。其中基本操作包括但不限于读、写、序列化、反序列化等。
在本发明实施例中,通过将写入数据的数据类型封装为指定的数据类型,从而便于后续对写入的数据进行统一处理。
在本发明另一实施例中,该安全管理器1还包括数据存储器销毁单元15。该数据存储器销毁单元15在写入数据时,在安全管理器1创建新的数据存储器前,销毁之前创建的数据存储器。这样,可以最大程度的节省内存空间。
在本发明另一实施例中,该装置还包括序列化处理器7。该序列化处理器7在发送数据时,将数据存储器中的密钥和密文采用预设的编码算法进行序列化处理,生成序列化字符串,在接收到序列化字符串时,对该序列化字符串进行反序列化,生成密钥和密文,并将生成的密钥和密文存储至接收方的数据存储器中。
其中预设的编码算法可以是现有技术提供的任意一种编码算法,如Base64编码算法等。
在本发明实施例中,通过对数据存储器中存储的密钥进行动态的更新,从而增加了外挂获取密钥的难度,进而极大的提高了数据的安全性。即使外挂通过某种方式获取了密钥,则由于密钥是动态更新的,因此,在外挂采用获取的密钥调用解密算法对密文进行解密的过程中,密钥可能已经发生了改变,导致解密出错,从而进一步提高了数据的安全性。通过创建至少两个数据存储器,在分别采用各数据存储器中的密钥对密文进行解密后,生成对应的明文数据后,通过对生成的各明文数据进行对比,即可判断出生成的明文数据是否一致,进而判断写入的数据是否被修改,并在判定明文数据不一致时,输出异常信息,从而进一步提高了数据的安全性。通过将写入的数据打散后进行存储,从而将原本在内存中连在一起的数据分散到不同的内存区域,这样可以增加外挂搜索内存的难度,从而进一步提高数据的安全性。当数据需要在客户端与服务器之间进行传递时,发送方对数据存储器中的密钥和密文进行序列化处理,得到序列化字符串,接收方对接收到的序列化字符串进行反序列化处理,即可得到密钥和密文,从而提高了数据在客户端和服务器之间传递时的安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种提高数据安全性的方法,其特征在于,所述方法包括下述步骤:
在写入数据时,创建至少两个数据存储器,并随机生成每个数据存储器的密钥,其中一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器存储用于校验读取的数据的密文和密钥;
通过编解码器提供的加密算法分别采用每个数据存储器的密钥对写入的数据进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中;
采用预设的密钥更新策略对数据存储器中存储的密钥进行更新;
在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。
2.如权利要求1所述的方法,其特征在于,所述采用预设的密钥更新策略对数据存储器中存储的密钥进行更新的步骤具体为:
采用预设的密钥更新策略对存储有用于读取数据的密文和密钥的数据存储器中存储的密钥进行更新。
3.如权利要求2所述的方法,其特征在于,所述在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据的步骤具体为:
在读取数据时,通过编解码器提供的解密算法采用各数据存储器中的密钥对各数据存储器中的密文进行解密处理,生成对应的明文数据;
将生成的各明文数据进行对比,当各明文数据不一致时,输出异常信息。
4.如权利要求1至3任一权利要求所述的方法,其特征在于,所述方法还包括下述步骤:
将写入数据的字符串打散,生成字符数组;此时,
所述通过编解码器提供的加密算法分别采用每个数据存储器的密钥对写入的数据进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中的步骤具体为:
通过编解码器提供的加密算法分别采用每个数据存储器的密钥对字符数组进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中。
5.如权利要求4所述的方法,其特征在于,所述在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据的步骤具体为:
在读取数据时,通过编解码器提供的解密算法采用各数据存储器中的密钥对各数据存储器中的密文进行解密处理,生成对应的明文字符数组;
将生成的各明文字符数组进行对比,当各明文字符数组不一致时,输出异常信息,当各明文字符数组一致时将明文字符数组合并成字符串。
6.如权利要求1至3任一权利要求所述的方法,其特征在于,所述方法还包括下述步骤:
当数据在客户端与服务器之间进行传递时,将数据存储器中的密钥和密文采用预设的编码算法进行序列化处理,生成序列化字符串;
接收方在接收到该序列化字符串后,对该序列化字符串进行反序列化,生成密钥和密文,并将生成的密钥和密文存储至接收方的数据存储器中。
7.如权利要求1至3任一权利要求所述的方法,其特征在于,在所述通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理的步骤之前,所述方法还包括下述步骤:
通过数据类型封装器将写入数据的数据类型转封装为指定的数据类型。
8.如权利要求1至3任一权利要求所述的方法,其特征在于,所述采用预设的密钥更新策略对数据存储器中存储的密钥进行更新的步骤具体为定时执行以下步骤:
通过编解码器提供的解密算法对存储在数据存储器中的密文和密钥进行解密处理,生成明文数据;
随机的生成新的数据存储器的密钥;
通过编解码器提供的加密算法采用新的数据存储器的密钥对生成的明文数据进行加密处理,生成新的密文;
将生成的新的数据存储器的密钥以及新的密文存储至数据存储器。
9.一种提高数据安全性的装置,其特征在于,所述装置包括:
安全管理器,所述安全管理器包括:
多数据存储器创建单元,用于在写入数据时,创建至少两个数据存储器,并随机生成每个数据存储器的密钥,其中一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器存储用于校验读取的数据的密文和密钥;
编解码器,用于在写入数据时,通过加密算法分别采用每个数据存储器的密钥对写入的数据进行加密处理,生成对应的密文,并将对应的密钥和密文存储至对应的数据存储器中,在读取数据时,通过编解码器提供的解密算法采用各数据存储器中的密钥对各数据存储器中的密文进行解密处理,生成对应的明文数据;
密钥更新单元,用于采用预设的密钥更新策略对数据存储器中存储的密钥进行更新。
10.如权利要求9所述的装置,其特征在于,所述密钥更新单元采用预设的密钥更新策略对存储有用于读取数据的密文和密钥的数据存储器中存储的密钥进行更新。
11.如权利要求10所述的装置,其特征在于,所述安全管理器还包括:
数据比较单元,用于将所述编解码器生成的各明文数据进行对比,并在各明文数据不一致时,输出异常信息。
12.如权利要求11所述的装置,其特征在于,所述安全管理器还包括:
数据打散单元,用于在写入数据时,将写入数据的字符串打散,生成字符数组;此时,
所述编解码器通过加密算法分别采用每个数据存储器的密钥对字符数组进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中。
13.如权利要求12所述的装置,其特征在于,所述安全管理器还包括数据合并单元,
所述编解码器在读取数据时,通过解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文字符数组;
所述数据比较单元将所述编解码器生成的各明文字符数组进行对比,并在各明文字符数组不一致时,输出异常信息;
所述数据合并单元在所述数据比较单元的比较结果为一致时,将编解码器生成的明文字符数组合并成字符串。
14.如权利要求9至13任一权利要求所述的装置,其特征在于,所述装置还包括:
序列化处理器,用于在发送数据时,将数据存储器中的密钥和密文采用预设的编码算法进行序列化处理,生成序列化字符串,在接收到序列化字符串时,对该序列化字符串进行反序列化,生成密钥和密文,并将生成的密钥和密文存储至接收方的数据存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010170559.0A CN102238001B (zh) | 2010-05-07 | 2010-05-07 | 一种提高数据安全性的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010170559.0A CN102238001B (zh) | 2010-05-07 | 2010-05-07 | 一种提高数据安全性的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102238001A CN102238001A (zh) | 2011-11-09 |
CN102238001B true CN102238001B (zh) | 2014-10-01 |
Family
ID=44888257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010170559.0A Active CN102238001B (zh) | 2010-05-07 | 2010-05-07 | 一种提高数据安全性的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102238001B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716330A (zh) * | 2014-01-03 | 2014-04-09 | 网易(杭州)网络有限公司 | 一种数字内容加密与解密方法和设备 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064988A (zh) * | 2013-02-01 | 2013-04-24 | 北京华环电子股份有限公司 | 一种异常数据的检测方法及装置 |
US9448888B2 (en) | 2013-11-15 | 2016-09-20 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank |
CN104320407B (zh) * | 2014-11-10 | 2018-05-25 | 成都卫士通信息产业股份有限公司 | 一种基于分布式缓存技术的密钥实时同步管理方法 |
CN105069362B (zh) * | 2015-06-30 | 2018-04-20 | 广东轩辕网络科技股份有限公司 | 一种存储方法及装置 |
CN107038383B (zh) * | 2016-02-03 | 2020-08-25 | 华为技术有限公司 | 一种数据处理的方法和设备 |
CN106534116A (zh) * | 2016-11-10 | 2017-03-22 | 北京锐安科技有限公司 | 非对称加密方法及装置、非对称解密方法及装置 |
CN106850557B (zh) * | 2016-12-22 | 2020-05-15 | 捷开通讯(深圳)有限公司 | 一种写入和读取电话卡联系人信息的方法、系统、终端 |
CN106934280A (zh) * | 2017-03-08 | 2017-07-07 | 网易(杭州)网络有限公司 | 内存数据处理方法、装置及网络游戏客户端 |
CN111641497A (zh) * | 2020-06-17 | 2020-09-08 | 深圳市钱海网络技术有限公司 | 一种对敏感参数进行自动解密的方法及装置 |
CN112083707A (zh) * | 2020-08-05 | 2020-12-15 | 深圳市永达电子信息股份有限公司 | 一种工控物理信号的处理方法及控制器、处理系统 |
CN113411180B (zh) * | 2020-09-22 | 2022-05-06 | 河南嘉晨智能控制股份有限公司 | 一种数据加密总线自适应的工业设备远程升级系统 |
CN112948773B (zh) * | 2021-02-07 | 2024-05-24 | 深圳市大梦龙途文化传播有限公司 | 脚本加密与解密方法、终端设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1222991A (zh) * | 1997-03-13 | 1999-07-14 | 布尔Cp8公司 | 用于在保密模块中存储和使用敏感信息的方法及相关的保密模块 |
CN1692600A (zh) * | 2002-10-09 | 2005-11-02 | 松下电器产业株式会社 | 加密装置、解密装置和加密系统 |
CN101626293A (zh) * | 2008-07-09 | 2010-01-13 | 上海格尔软件股份有限公司 | 一种数据加密保护及解密方法 |
-
2010
- 2010-05-07 CN CN201010170559.0A patent/CN102238001B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1222991A (zh) * | 1997-03-13 | 1999-07-14 | 布尔Cp8公司 | 用于在保密模块中存储和使用敏感信息的方法及相关的保密模块 |
CN1692600A (zh) * | 2002-10-09 | 2005-11-02 | 松下电器产业株式会社 | 加密装置、解密装置和加密系统 |
CN101626293A (zh) * | 2008-07-09 | 2010-01-13 | 上海格尔软件股份有限公司 | 一种数据加密保护及解密方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716330A (zh) * | 2014-01-03 | 2014-04-09 | 网易(杭州)网络有限公司 | 一种数字内容加密与解密方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102238001A (zh) | 2011-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102238001B (zh) | 一种提高数据安全性的方法和装置 | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
US8543839B2 (en) | Electronic device and method of software or firmware updating of an electronic device | |
CN101231622B (zh) | 基于闪存的数据存储方法和设备、及数据读取方法和设备 | |
CN110008745B (zh) | 一种加密方法、计算机设备和计算机存储介质 | |
US11728967B2 (en) | Dynamic masking | |
CN109104724B (zh) | 一种用于设备升级的数据加密方法和装置 | |
US20180181499A1 (en) | Secure memory | |
CN106228076B (zh) | 一种基于sgx的图片验证码保护方法及系统 | |
CN102439897A (zh) | 电子仪器、密钥生成程序、记录介质以及密钥生成方法 | |
CN108830096B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
JP2012118956A (ja) | インデックステーブル基盤のコード暗号化及び復号化装置及びその方法 | |
US20160020903A1 (en) | Nonce generation for encryption and decryption | |
CN104506504A (zh) | 一种无卡终端涉密信息的安全机制及安全装置 | |
CN103914662A (zh) | 一种基于分区的文件加密系统的访问控制方法和装置 | |
CN111859415A (zh) | 神经网络模型加密系统和方法 | |
CN103258172A (zh) | 一种芯片片外Nor Flash总线接口硬件加密装置 | |
FR2976147A1 (fr) | Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise | |
CN103971034A (zh) | 一种保护Java软件的方法及装置 | |
CN113127844A (zh) | 一种变量访问方法、装置、系统、设备和介质 | |
CN114721634B (zh) | 一种基于自定义类加载器的分包打包及加密方法及系统 | |
CN110008724A (zh) | 固态硬盘控制器安全加载方法、装置及存储介质 | |
CN110535642A (zh) | 一种分散存储密钥的方法、智能终端及存储介质 | |
CN109766141A (zh) | 一种基于动态链接库的数据动态更新方法及其装置 | |
CN209103293U (zh) | 电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |