一种提高数据安全性的方法和装置的制作方法

文档序号:7748576阅读:187来源:国知局
专利名称:一种提高数据安全性的方法和装置的制作方法
技术领域
本发明属于数据安全领域,尤其涉及一种提高数据安全性的方法和装置。
背景技术
随着网络技术的不断发展,网络游戏已越来越受到用户的青睐。AS3也越来越广泛的用于网络游戏开发中。其中AS3是ActionScript3. 0的简称,ActioMcript是Flash的脚本语言。通过 ActionScript才能在Flash中创作具有很强交互性的动画,ActionScript3. 0是该脚本语言的最新版本。其中Flash是一种交互式矢量多媒体技术,它的前身是Futur印lash,是早期网络上流行的矢量动画插件为了保证网络游戏的正常逻辑,保证网络游戏的公平性,网络游戏中的游戏数据的安全性是非常关键的。现有的大部分网络游戏都受到外挂的干扰。其中外挂是一种非法获取或者篡改游戏数据的应用程序。为了避免外挂对网络游戏的影响,如何提高游戏数据的安全性成为迫切需要解决的问题。现有技术提供了多种提高AS3中游戏数据安全性的方案。择一简述如下请参阅图1,为现有技术提供的提高AS3中数据安全性的原理图。在将游戏数据写入数据容器时,被写入的数据经过编解码器加密后,其密文和密钥一起保存在数据容器里。 在读取数据时,数据容器里的数据需先根据密钥采用解码算法解密后才能被读出,这种方法一定程度上提高了 AS3中游戏数据的安全性。但在这种方法中,由于AS3是一种用于Flash开发的脚本语言,其编译后会生成 Flash文件,而脚本语言本身存在容易被反编译的缺陷,因此,通过特定工具,完全可以从 Flash文件里将其脚本以AS3源代码的形式反编译出来,这样,就可以从源代码中分析出上述方案的基本原理和编解码算法。这样,外挂就可以从内存中取得密钥和加密算法,由于密钥一般是固定的,当外挂需要在内存中搜索一个值时,就可以通过取得的密钥和加密算法计算出该值的密文,然后在内存中就可以搜索到该密文的内存地址,通过对该内存地址中的数据进行非法操作,即可达到篡改游戏数据的目的,因此,现有技术提供的上述方法也不能保证游戏数据的安全性。另外当外挂修改了内存中的值,甚至即使外挂没有破解加密算法,也可以通过破坏性的修改该值对应的内存,而游戏正常逻辑在通过数据类型封装器读取该值时,并不知道该值已被非法修改过,从而也会导致游戏逻辑被破坏。因此,现有技术中游戏数据的安全性较低。

发明内容
本发明实施例的目的在于提供一种提高数据安全性的方法,旨在解决现有的游戏系统中游戏数据安全性低的问题。本发明实施例是这样实现的,一种提高数据安全性的方法,所述方法包括下述步骤在写入数据时,创建数据存储器,并随机生成数据存储器的密钥;通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中;采用预设的密钥更新策略对数据存储器中存储的密钥进行更新;在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。本发明实施例的另一目的在于提供一种提高数据安全性的装置,所述装置包括安全管理器,用于在写入数据时,创建数据存储器,并随机生成数据存储器的密钥;编解码器,用于在写入数据时,通过加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,在读取数据时,通过解密算法采用数据存储器中的密钥对数, 用于存储所述安全管理器生成的密钥和编解码器生成密文;密钥更新单元,用于采用预设的密钥更新策略对数据存储器中存储的密钥进行更新。在本发明实施例中,通过密钥更新策略对数据存储器中存储的密钥进行更新,使得数据存储器中的密钥是动态变化的,从而增加了外挂获取密钥的难度,进而极大的提高了数据的安全性。即使外挂通过某种方式获取了密钥,则由于密钥是动态更新的,因此,在外挂采用获取的密钥调用解密算法对密文进行解密的过程中,密钥可能已经发生了改变, 导致解密出错,从而进一步提高了数据的安全性。


图1是现有技术提供的提高AS3中数据安全性的原理图;图2是本发明第一实施例提供的提高数据安全性的方法的实现流程图;图3是本发明第二实施例提供的提高数据安全性的方法的实现类流程图;图4是本发明第三实施例提供的提高数据的安全性的方法的实现流程图;图5是本发明第四实施例提供的提高数据的安全性的方法的实现流程图;图6是本发明第六实施例提供的提高数据的安全性的方法的实现流程图;图7是本发明实施例提供的采用本发明的方法后的数据读写时序示例图;图8是本发明实施例提供的密钥更新的时序示例图;图9是本发明第一实施例提供的提高数据的安全性的装置的结构框图;图10是本发明第二实施例提供的提高数据的安全性的装置的结构框图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在本发明实施例中,在写入数据时,创建数据存储器,并随机生成数据存储器的密钥,通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中,采用预设的密钥更新策略对数据存储器的密钥进行更新,从而极大的增加了密钥获取难度,提高了数据的安全性。实施例一图2示出了本发明第一实施例提供的提高数据安全性的方法的实现流程,详述如下在步骤SlOl中,在写入数据时,创建数据存储器,并随机生成数据存储器的密钥。其中随机生成数据存储器的密钥的方法可以采用现有技术提供的任意一种方法, 如依次随机取预定个数的0到255之间的整数。然后将这若干个整数当成ASCII码组成一个预定长度的字符串,将组成的预定长度的字符串作为随机生成的数据存储器的密钥。在步骤S102中,通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中。其中通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文是指将数据存储器的密钥作为编解码提供的加密算法的输入值,加密算法根据该输入值对写入的数据进行加密处理,得到对应的输出值,该输出值即为生成的密文。其中编解码器提供的加密算法可以是现有技术中存在的任意一种加密算法,如微型加密算法的修订版(XXTEA算法)等。在此不再一一举例说明。在步骤S103中,采用预设的密钥更新策略对数据存储器中存储的密钥进行更新。其中预设的密钥更新策略可以是定时的更新密钥,其中定时的更新密钥的具体步骤是定时的执行以下步骤A、通过编解码器提供的解密算法对存储在数据存储器中的密文和密钥进行解密处理,生成明文数据;B、随机的生成新的数据存储器的密钥。其中随机生成新的数据存储器的密钥的方法可以采用现有技术提供的任意一种方法,在此不再赘述;
C、通过编解码器提供的加密算法采用新的数据存储器的密钥对生成的明文数据进行加密处理,生成新的密文;D、将生成的新的数据存储器的密钥以及新的密文存储至数据存储器。在步骤S104 中,在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。在本发明实施例中,由于对数据存储器的密钥进行更新,其中更新不仅包括密钥值的更新,由于每次生成新的密钥时,均会重新创建一个变量来存储该新生成的密钥,因此,在对数据存储器的密钥值进行更新时,也同时对密钥的存储地址进行更新,从而增加了外挂获取密钥的难度,进而极大的提高了数据的安全性。即使外挂通过某种方式获取了密钥,则由于密钥是动态更新的,因此,在外挂采用获取的密钥调用解密算法对密文进行解密的过程中,密钥可能已经发生了改变,导致解密出错,从而进一步提高了数据的安全性。实施例二 图3示出了本发明第二实施例提供的提高数据安全性的方法的实现类流程,详述如下在步骤S201中,在写入数据时,创建至少两个数据存储器,并随机生成每个数据
7存储器的密钥。在本发明实施例中,在写入数据时,创建至少两个数据存储器,并为每个数据存储器随机生成密钥。其中一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器中存储用于校验读取的数据的密文和密钥。在本发明实施例中,可以从至少两个数据存储器中任意选择一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器存储用于校验读取的数据的密文和密钥。在步骤S202中,通过编解码器提供的加密算法分别采用每个数据存储器的密钥对写入的数据进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中。在本发明实施中,当创建了两个数据存储器,分别为第一数据存储器和第二数据存储器时,则第一数据存储器和第二数据存储器均对应有一密钥,通过编解码器提供的加密算法采用第一数据存储器对应的密钥对写入的数据进行加密处理,生成与第一数据存储器的密钥对应的密文,此时将第一数据存储器的密钥和生成的密文存储至第一数据存储器,同时通过编解码器提供的加密算法采用第二数据存储器对应的密钥对写入的数据进行加密处理,生成与第二数据存储器的密钥对应的密文,此时将第二数据存储器的密钥和生成的密文存储至第二数据存储器。此时,可以采用第一数据存储器存储用于读取数据的密文和密钥,第二数据存储器存储用于校验读取的数据的密文和密钥。在步骤S203中,采用预设的密钥更新策略对存储有用于读取数据的密文和密钥的数据存储器中存储的密钥进行更新。其中采用预设的密钥更新策略对存储有用于读取数据的密文和密钥的数据存储器中存储的密钥进行更新的具体步骤如上所述,在此不再赘述。在步骤S204中,在读取数据时,通过编解码器提供的解密算法采用各数据存储器中的密钥对各数据存储器中的密文进行解密处理,生成对应的明文数据。在本发明实施例中,如果之前创建了两个数据存储器,分别为第一数据存储器和第二数据存储器,则通过编解码器提供的解密算法采用第一数据存储器中的密钥对第一数据存储器中的密文进行解密处理,生成明文数据;再通过编解码器提供的解密算法采用第二数据存储器中的密钥对第二数据存储器中的密文进行解密处理,生成明文数据。在步骤S205中,将生成的各明文数据进行对比,当各明文数据不一致时,输出异吊fn息ο在本发明实施例中,通过将生成的各明文数据进行对比,如果一致,则说明写入的数据未被修改过,否则说明写入的数据已被修改,此时,为了告知用户写入的数据已被修改,输出异常信息。在本发明实施中,在输出异常信息的具体方式可以是输出告警信息等。在具体实现时,可以以接口的形式进行定义,具体的实现可以由用户自行定义。在本发明实施例中,通过创建至少两个数据存储器,用于存储密钥和密文,在采用密钥对密文进行解密后,生成对应的明文数据,通过对生成的明文数据进行对比,即可判断出生成的明文数据是否一致,进而判断写入的数据是否被修改,当判定生成的明文数据不一致时,即判定写入的数据已被修改,此时输出异常信息,以及时告知用户,从而进一步提高了数据的安全性。
在本发明另一实施例中,在步骤S205之后,该方法还包括下述步骤检测输出的异常信息,并根据输出的异常信息进行相应的异常处理。其中相应的异常包括但不限于禁止读写、退出当前程序、关机等。实施例三图4示出了本发明第三实施例提供的提高数据的安全性的方法的实现流程,详述如下在步骤S301中,在写入数据时,将写入数据的字符串打散,生成字符数组。其中将写入数据的字符串打散的方法可以采用现有技术提供的任意一种方法。在本发明实施例中,提供了如下方法将写入数据的字符串拆分成字符数组,从而将原本在内存中连在一起的数据分散到不同的内存区域,这样可以增加外挂搜索内存的难度。在步骤S302中,创建数据存储器,并随机生成数据存储器的密钥。在本发明实施例中,为了进一步提高数据的安全性,在创建数据存储器时,也可以创建至少两个数据存储器,并随机生成每个数据存储器的密钥。在步骤S303中,通过编解码器提供的加密算法采用数据存储器的密钥对字符数组进行加密处理,生成对应的密文,并将密钥和密文存储至数据存储器中。在本发明实施例中,当创建了至少两个数据存储器时,通过编解码器提供的加密算法分别采用每个数据存储器的密钥对字符数组进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中。在步骤S304中,采用预设的密钥更新策略对数据存储器中存储的密钥进行更新。 其具体步骤如上所述,在此不再赘述。在步骤S305中,在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文字符数组,将生成的明文字符数组合并成字符串。在本发明另一实施例中,当创建了至少两个数据存储器时,则在读取数据时,通过编解码器提供的解密算法分别采用各数据存储器中的密钥对对应数据存储器中的密文进行解密处理,生成对应的明文字符数组,将生成的明文字符数组合并成字符串后,将各合并后的字符串进行对比,当各字符串不一致时,输出异常信息。当然也可以先将生成的各明文字符数组进行比较,并在各明文字符数组一致时,将各明文字符数组合并成字符串。举例说明如下如果创建了两个数据存储器,分别为第一数据存储器和第二数据存储器,则在读取数据时,通过编解码器提供的解密算法采用第一数据存储器中的密钥对第一数据存储器中的密文进行解密处理,生成与第一数据存储器对应的明文字符数组,将生成的明文字符数组合并成与第一数据存储器对应的字符串;再通过编解码器提供的解密算法采用第二数据存储器中的密钥对第二数据存储器中的密文进行解密处理,生成与第二数据存储器对应的明文字符数组,将生成的明文字符数组合并成与第二数据存储器对应的字符串;将与第一数据存储器对应的字符串和与第二数据存储器对应的字符串进行对比,当与第一数据存储器对应的字符串和与第二数据存储器对应的字符串不一致时,输出异常信息。在本发明实施例中,通过将写入数据的字符串打散加密后存储,从而将原本在内存中连在一起的数据分散存储到不同的内存区域,从而增加了外挂搜索内存中存储的数据的难度,进一步提供了数据的安全性。实施例四图5示出了本发明第四实施例提供的提高数据的安全性的方法的实现流程,详述如下在步骤S401中,在写入数据时,通过数据类型封装器将写入数据的数据类型转封装为指定的数据类型。在本发明实施例中,由于每次写入数据的数据类型可能不一致,如可以为整型、字符串型、布尔型等,为了后续便于对写入的数据进行处理,在写入数据时,先通过数据类型封装器将写入数据的数据类型封装为指定的数据类型。其中数据类型封装器包括但不限于整型封装器、字符串封装器、布尔型封装器等。整型封装器用于将写入数据的数据类型封装为整型,字符串封装器用于将写入数据的数据类型封装为字符串型,布尔型封装器用于将写入数据的数据类型封装为布尔型。当然还可以将写入数据的数据类型封装为其他类型, 在此不再一一举例说明。在步骤S402中,创建数据存储器,并随机生成数据存储器的密钥。在本发明实施例中,为了进一步提高数据的安全性,在创建数据存储器时,也可以创建至少两个数据存储器,并随机生成每个数据存储器的密钥。在步骤S403中,通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中。在本发明实施例中,当创建了至少两个数据存储器时,通过编解码器提供的加密算法分别采用每个数据存储器的密钥对字符数组进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中。在步骤S404中,采用预设的密钥更新策略对数据存储器中存储的密钥进行更新。 其具体步骤如上所述,在此不再赘述。在步骤S405中,在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。在本发明另一实施例中,当创建了至少两个数据存储器时,则在读取数据时,通过编解码器提供的解密算法分别采用各数据存储器中的密钥对对应数据存储器中的密文进行解密处理,生成对应的明文数据,将生成的各明文数据进行对比,当各明文数据不一致时,输出异常信息。实施例五本发明第五实施例提供的提高数据的安全性的方法与以上实施例提供的提高数据的安全性的方法的不同之处仅在于,在写入数据时,先销毁之前创建的数据存储器,再创建新的数据存储器,这样,可以最大程度的节省内存空间。实施例六图6示出了本发明第六实施例提供的提高数据的安全性的方法的实现流程,该方法在上述各实施例提供的方法的区别仅在于,还包括下述步骤,以与图2所示的提高数据的安全性的方法相比较为例,其中步骤S501至S503与图1中的步骤SlOl至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编码
算法等。在本发明实施例中,通过对数据存储器中存储的密钥进行动态的更新,从而增加了外挂获取密钥的难度,进而极大的提高了数据的安全性。即使外挂通过某种方式获取了密钥,则由于密钥是动态更新的,因此,在外挂采用获取的密钥调用解密算法对密文进行解密的过程中,密钥可能已经发生了改变,导致解密出错,从而进一步提高了数据的安全性。 通过创建至少两个数据存储器,在分别采用各数据存储器中的密钥对密文进行解密后,生成对应的明文数据后,通过对生成的各明文数据进行对比,即可判断出生成的明文数据是否一致,进而判断写入的数据是否被修改,并在判定明文数据不一致时,输出异常信息,从而进一步提高了数据的安全性。通过将写入的数据打散后进行存储,从而将原本在内存中连在一起的数据分散到不同的内存区域,这样可以增加外挂搜索内存的难度,从而进一步提高数据的安全性。当数据需要在客户端与服务器之间进行传递时,发送方对数据存储器中的密钥和密文进行序列化处理,得到序列化字符串,接收方对接收到的序列化字符串进行反序列化处理,即可得到密钥和密文,从而提高了数据在客户端和服务器之间传递时的安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种提高数据安全性的方法,其特征在于,所述方法包括下述步骤 在写入数据时,创建数据存储器,并随机生成数据存储器的密钥;通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中;采用预设的密钥更新策略对数据存储器中存储的密钥进行更新; 在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。
2.如权利要求1所述的方法,其特征在于,所述在写入数据时,创建数据存储器,并随机生成数据存储器的密钥具体为在写入数据时,创建至少两个数据存储器,并随机生成每个数据存储器的密钥,其中一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器存储用于校验读取的数据的密文和密钥;所述通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中的步骤具体为通过编解码器提供的加密算法分别采用每个数据存储器的密钥对写入的数据进行加密处理,生成对应的密文,并将密钥和密文存储至对应的数据存储器中。
3.如权利要求2所述的方法,其特征在于,所述采用预设的密钥更新策略对数据存储器中存储的密钥进行更新的步骤具体为采用预设的密钥更新策略对存储有用于读取数据的密文和密钥的数据存储器中存储的密钥进行更新。
4.如权利要求3所述的方法,其特征在于,所述在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据的步骤具体为在读取数据时,通过编解码器提供的解密算法采用各数据存储器中的密钥对各数据存储器中的密文进行解密处理,生成对应的明文数据;将生成的各明文数据进行对比,当各明文数据不一致时,输出异常信息。
5.如权利要求1至4任一权利要求所述的方法,其特征在于,所述方法还包括下述步骤将写入数据的字符串打散,生成字符数组;此时,所述通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中的步骤具体为通过编解码器提供的加密算法采用数据存储器的密钥对字符数组进行加密处理,生成对应的密文,并将密钥和密文存储至数据存储器中。
6.如权利要求5所述的方法,其特征在于,所述在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据的步骤具体为在读取数据时,通过编解码器提供的解密算法采用各数据存储器中的密钥对各数据存储器中的密文进行解密处理,生成对应的明文字符数组;将生成的各明文字符数组进行对比,当各明文字符数组不一致时,输出异常信息,当各明文字符数组一致时将明文字符数组合并成字符串。
7.如权利要求1至4任一权利要求所述的方法,其特征在于,所述方法还包括下述步骤当数据在客户端与服务器之间进行传递时,将数据存储器中的密钥和密文采用预设的编码算法进行序列化处理,生成序列化字符串;接收方在接收到该序列化字符串后,对该序列化字符串进行反序列化,生成密钥和密文,并将生成的密钥和密文存储至接收方的数据存储器中。
8.如权利要求1至4任一权利要求所述的方法,其特征在于,在所述通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理的步骤之前,所述方法还包括下述步骤通过数据类型封装器将写入数据的数据类型转封装为指定的数据类型。
9.如权利要求1至4任一权利要求所述的方法,其特征在于,所述采用预设的密钥更新策略对数据存储器中存储的密钥进行更新的步骤具体为定时执行以下步骤通过编解码器提供的解密算法对存储在数据存储器中的密文和密钥进行解密处理,生成明文数据;随机的生成新的数据存储器的密钥;通过编解码器提供的加密算法采用新的数据存储器的密钥对生成的明文数据进行加密处理,生成新的密文;将生成的新的数据存储器的密钥以及新的密文存储至数据存储器。
10.一种提高数据安全性的装置,其特征在于,所述装置包括安全管理器,用于在写入数据时,创建数据存储器,并随机生成数据存储器的密钥;编解码器,用于在写入数据时,通过加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,在读取数据时,通过解密算法采用数据存储器中的密钥对数,用于存储所述安全管理器生成的密钥和编解码器生成密文;密钥更新单元,用于采用预设的密钥更新策略对数据存储器中存储的密钥进行更新。
11.如权利要求10所述的装置,其特征在于,所述安全管理器包括多数据存储器创建单元,用于在写入数据时,创建至少两个数据存储器,并随机生成每个数据存储器的密钥,其中一个数据存储器存储用于读取数据的密文和密钥,其余数据存储器存储用于校验读取的数据的密文和密钥;此时,所述编解码器通过加密算法分别采用每个数据存储器的密钥对写入的数据进行加密处理,生成对应的密文,并将对应的密钥和密文存储至对应的数据存储器中,在读取数据时,通过编解码器提供的解密算法采用各数据存储器中的密钥对各数据存储器中的密文进行解密处理,生成对应的明文数据。
12.如权利要求11所述的装置,其特征在于,所述密钥更新单元采用预设的密钥更新策略对存储有用于读取数据的密文和密钥的数据存储器中存储的密钥进行更新。
13.如权利要求12所述的装置,其特征在于,所述安全管理器还包括数据比较单元,用于将所述编解码器生成的各明文数据进行对比,并在各明文数据不一致时,输出异常信息。
14.如权利要求10至13任一权利要求所述的装置,其特征在于,所述安全管理器还包括数据打散单元,用于在写入数据时,将写入数据的字符串打散,生成字符数组;此时, 所述编解码器通过加密算法采用数据存储器的密钥对字符数组进行加密处理,生成对应的密文,并将密钥和密文存储至数据存储器中。
15.如权利要求14所述的装置,其特征在于,所述安全管理器还包括数据合并单元, 所述编解码器在读取数据时,通过解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文字符数组;所述数据比较单元将所述编解码器生成的各明文字符数组进行对比,并在各明文字符数组不一致时,输出异常信息;所述数据合并单元在所述数据比较单元的比较结果为一致时,将编解码器生成的明文字符数组合并成字符串。
16.如权利要求10至13任一权利要求所述的装置,其特征在于,所述装置还包括序列化处理器,用于在发送数据时,将数据存储器中的密钥和密文采用预设的编码算法进行序列化处理,生成序列化字符串,在接收到序列化字符串时,对该序列化字符串进行反序列化,生成密钥和密文,并将生成的密钥和密文存储至接收方的数据存储器中。
全文摘要
本发明适用于数据安全领域,提供了一种提高数据安全性的方法和装置,所述方法包括下述步骤在写入数据时,创建数据存储器,并随机生成数据存储器的密钥;通过编解码器提供的加密算法采用数据存储器的密钥对写入的数据进行加密处理,生成密文,并将密钥和密文存储至数据存储器中;采用预设的密钥更新策略对数据存储器中存储的密钥进行更新;在读取数据时,通过编解码器提供的解密算法采用数据存储器中的密钥对数据存储器中的密文进行解密处理,生成明文数据。本发明实施例通过对数据存储器中存储的密钥进行动态的更新,从而增加了外挂获取密钥的难度,进而极大的提高了数据的安全性。
文档编号H04L9/08GK102238001SQ201010170559
公开日2011年11月9日 申请日期2010年5月7日 优先权日2010年5月7日
发明者唐声福 申请人:腾讯数码(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1