文件加密、解密方法及装置、电子设备、可读存储介质与流程

文档序号:22736421发布日期:2020-10-31 09:15阅读:109来源:国知局
文件加密、解密方法及装置、电子设备、可读存储介质与流程

本公开涉加密、解密技术,尤其涉及一种文件加密、解密方法及装置、电子设备、可读存储介质。



背景技术:

目前,随着终端智能应用的普及,很多企业都推出了应用于终端的推理框架,这些推理框架能够加载并应用模型。

现有技术中为了保护模型不被盗用,设置有模型保护机制,这些机制能够保护模型的结构信息和权重数据不被窃取。

但是,由于推理框架的存在,导致破解者可以对应用进行破解从而获取到其中的模型文件,并且直接通过推理框架加载模型文件,窃取其他用户的劳动成功。因此,如何有效的保护模型不被盗用,是本领域技术人员亟需解决的技术问题。



技术实现要素:

本公开提供一种文件加密、解密方法及装置、电子设备、可读存储介质,以解决现有技术中模型文件容易被窃取盗用的问题。

本公开的第一个方面是提供一种文件加密方法,包括:

根据原始文件确定文件数据信息,并获取与所述原始文件对应的授权应用的标识信息;

根据所述文件数据信息、所述标识信息确定密钥,并使用所述密钥对所述原始文件的数据进行加密,得到第一加密数据;

根据所述文件数据信息、标识信息、所述第一加密数据确定与所述原始文件对应的加密文件。

本公开的第二个方面是提供一种文件解密方法,包括:

根据加密文件获取第一加密数据、文件数据信息、授权应用的第一标识信息;其中,所述第一加密数据是对原始文件的数据进行加密得到的,所述文件数据信息是原始文件的数据的签名信息;

获取待验证应用的第二标识信息,并比对所述第一标识信息与所述第二标识信息;

若比对一致,则根据所述第二标识信息、文件数据信息对所述第一加密数据进行解密,得到原始文件的数据,并根据所述原始文件的数据确定与所述加密文件对应的原始文件。

本公开的第三个方面是提供一种文件加密装置,包括:

获取模块,用于根据原始文件确定文件数据信息,并获取与所述原始文件对应的授权应用的标识信息;

密钥生成模块,用于根据所述文件数据信息、所述标识信息确定密钥;

加密模块,用于使用所述密钥对所述原始文件的数据进行加密,得到第一加密数据;

加密文件生成模块,用于根据所述文件数据信息、标识信息、所述第一加密数据确定与所述原始文件对应的加密文件。

本公开的第四个方面是提供一种文件解密装置,包括:

获取模块,用于根据加密文件获取第一加密数据、文件数据信息、授权应用的第一标识信息;其中,所述第一加密数据是对原始文件的数据进行加密得到的,所述文件数据信息是原始文件的数据的签名信息;

比对模块,用于获取待验证应用的第二标识信息,并比对所述第一标识信息与所述第二标识信息;

解密模块,用于若比对一致,则根据所述第二标识信息、文件数据信息对所述第一加密数据进行解密,得到原始文件的数据,并根据所述原始文件的数据确定与所述加密文件对应的原始文件。

本公开的又一个方面是提供一种电子设备,包括:

存储器;

处理器;以及

计算机程序;

其中,所述计算机程序存储在所述存储器中,并配置为由所述处理器执行以实现如上述第一方面所述的文件加密方法或第二方面所述的文件解密方法。

本公开的又一个方面是提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如上述第一方面所述的文件加密方法或第二方面所述的文件解密方法。

本公开提供的文件加密、解密方法及装置、电子设备、可读存储介质的技术效果是:

本公开提供的文件加密、解密方法及装置、电子设备、可读存储介质,将一原始文件授权给一应用使用时,能够基于该授权应用的标识信息对原始文件进行加密,进而使得到的加密文件与授权应用的标识紧密关联。当应用调用该加密文件时,需要先利用自身的应用标识对该加密文件进行解密,若与用于生成加密文件的应用标识不一致,则会导致解密失败,进而使得未被授权使用原始文件的应用无法正确读取原始文件,因此,本公开提供的文件加密、解密方法及装置、电子设备、可读存储介质能够有效避免文件被窃取、盗用。

附图说明

图1为本申请一示例性实施例示出的文件加密方法的流程图;

图2为本申请一示例性实施例示出的第一交互界面示意图;

图3为本申请另一示例性实施例示出的文件加密方法的流程图;

图4为本申请一示例性实施例示出的文件解密方法的流程图;

图5为本申请另一示例性实施例示出的文件解密方法的流程图;

图6为本申请一示例性实施例示出的第二交互界面示意图;

图7为本申请一示例性实施例示出的第三交互界面示意图;

图8为本发明一示例性实施例示出的文件加密装置的结构图;

图9为本发明另一示例性实施例示出的文件加密装置的结构图;

图10为本发明一示例性实施例示出的文件解密装置的结构图;

图11为本发明另一示例性实施例示出的文件解密装置的结构图;

图12为本发明一示例性实施例示出的电子设备的结构图。

具体实施方式

目前,很多应用中都设置有模型文件,例如面部识别模型、语义识别模型等,基于这些模型文件,应用能够进行数据分析,并得到需要的结果。

为了避免模型文件不被窃取盗用,可以基于模型保护机制保护模型的结构信息和权重数据不被窃取。但是,一些破解者可以破解应用,得到整个模型文件。再通过已有的一些开源推理框架直接加载模型文件,就能够应用这些模型文件。

模型文件是研发人员需要花费大量的时间、精力才能够完成的,而轻易被其他用户窃取盗用,会侵害模型文件原本研发人员的利益,因此,需要对应用中的模型文件进行保护,以避免其被盗用、窃取。

为了解决上述技术问题,本申请实施例提供一种文件加密方法,该方法能够基于授权应用的标识信息对文件进行加密,从而使文件与被授权的应用具有绑定关系,无法被没有通过授权的应用使用,达到保护模型文件的目的。

需要说明的是,本申请的方案还可以应用于其他需要保护的文件,而不仅限于模型文件,对模型文件进行加密仅是一种应用场景。例如被加密的文件可以是视频文件、文档文件等。比如一视频文件被授权给指定应用播放,则可以基于本实施例提供的方法,基于该指定应用的标识对视频文件进行加密。

图1为本申请一示例性实施例示出的文件加密方法的流程图。

如图1所示,本实施例提供的文件加密方法包括:

步骤101,根据原始文件确定文件数据信息,并获取与原始文件对应的授权应用的标识信息。

其中,本实施例提供的方法可以由一具备计算能力的电子设备执行,该电子设备例如可以是计算机。需要将一个原始文件授权给一应用时,电子设备可以根据授权应用的标识对一原始文件进行加密。

具体的,电子设备可以是用户终端,其可以基于用户的操作直接对原始文件加密。电子设备还可以是服务器,可以通过用户终端与服务器之间的交互,使电子设备对原始文件进行加密。

图2为本申请一示例性实施例示出的第一交互界面示意图。

当一用户将文件制作完成后,可以将其授权给其他应用使用。比如该文件可以是一模型文件,可以将其授权为应用a、b、c使用。

如图2所示,用户可以选择需要授权的原始文件,以及授权应用,可以根据实际情况选择一个或多个授权应用。在选择完毕后,例如用户可以点击加密按键,从而触发电子设备根据授权应用对原始文件进行加密。

实际应用时,针对一个授权应用可以得到一个对应的加密文件,比如基于应用a的标识对原始文件进行加密,则可以得到与应用a对应的加密文件a’。假如将加密文件a’应用在b中,则会导致解密失败,进而无法正常应用的问题。

其中,电子设备在对原始文件进行加密时,可以根据原始文件确定文件数据信息。例如,可以读取原始文件得到字节流buf0。可以直接将字节流buf0作为文件数据信息s0,也可以对字节流buf0进行加密,得到文件数据信息s0。

具体的,可以基于md5算法对节流buf0进行加密得到16位的文件数据信息s0。

进一步的,电子设备还可以获取与该原始文件对应的授权应用的标识信息。该标识信息是指授权应用的唯一标识信息。

一种实施方式中,可以读取应用的包名及其对应的签名信息,将这一组合作为授权应用的唯一标识信息p1。

另一种实施方式中,还可以读取应用的唯一标识,并利用md5算法对该唯一标识加密得到授权应用的标识信息p1。唯一标识可以是应用的包名及其对应的签名信息,还可以是应用对应的编码等内容。

实际应用时,获取的授权应用的标识信息p1是唯一的,从而可以基于该唯一的标识信息对原始文件进行加密,得到的加密文件与授权应用相关联,进而能够避免其他应用能够使用该加密文件。

当需要将原始文件授权给多个应用时,可以分别获取这些应用的标识信息,并基于每个标识信息对原始文件进行加密,得到不同的加密文件。

步骤102,根据文件数据信息、标识信息确定密钥,并使用密钥对原始文件的数据进行加密,得到第一加密数据。

其中,可以根据文件数据信息s0、标识信息p1生成一密钥key0。

一种实施方式中,可以对文件数据信息s0、标识信息p1进行拼接,得到一个密钥key0。

另一种实施方式中,还可以对文件数据信息s0、标识信息p1进行拼接,并利用md5算法对拼接后的字符串进行加密,得到密钥key0。

另一种实施方式中,还可以获取一预先设置的字符串,结合文件数据信息s0、标识信息p1以及该字符串,生成一个密钥key0。

比如,可以对文件数据信息s0、标识信息p1、预设字符串进行拼接,得到一个密钥key0。

再比如,可以对文件数据信息s0、标识信息p1、预设字符串进行拼接,再利用md5算法对拼接后的字符串进行加密,得到key0。

再比如,可以利用md5算法对预设字符串进行加密得到k1,再对文件数据信息s0、标识信息p1、k1进行拼接,得到key0。或者利用md5对拼接后的字符串进行加密,得到key0。

其中,本实施例提供的方法中,可以根据应用标识生成密钥,从而使得用于对原始文件数据进行加密的密钥中包括授权应用的信息,进而使得加密后得到的加密文件与授权应用标识关联。

具体的,可以利用确定的密钥对原始文件的数据进行加密,从而得到第一加密数据。

进一步的,原始文件的数据可以是读取原始文件得到的字节流bf0,即可以使用密钥key0对bf0进行加密,得到第一加密数据bf1。

实际应用时,可以基于aes(advancedencryptionstandard,高级加密标准)算法,使用key0对bf0进行加密。利用aes加密算法,能够根据密钥和一段明文生成密文,利用aes解密算法,能够根据密钥和一段密文,得到对应的明文。

步骤103,根据文件数据信息、标识信息、第一加密数据确定与原始文件对应的加密文件。

其中,可以对文件数据信息、授权应用的标识信息、以及生成的第一加密数据进行拼接,可以直接将拼接后的数据写入一文件中,得到加密文件。还可以对拼接后的数据中的字节进行置换、混淆,再将处理后的数据写入一文件中,得到加密文件。

再例如,可以对文件数据信息s0、授权应用的标识信息p1以及第一加密数据bf1进行拼接,得到第二加密数据bf2。

一种实施方式中,可以将bf2写入一文件中,得到加密文件。

另一种实施方式中,还可以将bf2中的字节进行置换、混淆,得到第三加密数据bf3,再将bf3写入一文件中,得到加密文件。由于添加了授权应用的标识信息,而该信息能够用于对第一加密数据进行解密,因此,为了避免直接读取到这一信息,可以将bf2中p1的各个字节,与第一加密数据中的字节基于一定的规则进行置换,从而打乱原有字节顺序。比如,p1为16位字节,则可以将其中的每个字节与第一加密数据中的16个字节进行交换,得到bf3。

若在生成密钥key0时,还结合s0生成key0,则可以将bf2中s0的各个字节,也与第一加密数据中的字节基于一定的规则进行置换,进而使bf2中的加密信息被打乱。

得到的加密文件中,记录有授权应用的标识信息,以及对原始文件的数据进行加密得到的第一加密数据。因此,一应用在调用该文件时,可以基于自身的应用标识对加密文件进行解密,如果其是一授权应用,则能够将加密文件解密为原始文件,否则,将会解密失败。具体的解密方式与上述加密方式相反。

例如,根据授权应用a的标识信息对原始文件加密得到加密文件a’,可以将a’设置在应用a中。当应用a调用a’时,可以利用与本方法对应的解密方法对a’进行解密处理,具体可以根据a的应用标识对加密文件进行解密,从而得到原始文件。若应用b调用a’,则由于应用b的标识与生成a’的应用标识不一致,会导致解密失败。

本实施例提供的方法用于对文件进行加密,该方法由设置有本实施例提供的方法的设备执行,该设备通常以硬件和/或软件的方式来实现。

本实施例提供的文件加密方法,包括:根据原始文件确定文件数据信息,并获取与原始文件对应的授权应用的标识信息;根据文件数据信息、标识信息确定密钥,并使用密钥对原始文件的数据进行加密,得到第一加密数据;根据文件数据信息、标识信息、第一加密数据确定与原始文件对应的加密文件。本实施例提供的方法,将一原始文件授权给一应用使用时,能够基于该授权应用的标识信息对原始文件进行加密,进而使得到的加密文件与授权应用的标识紧密关联。当应用调用该加密文件时,需要先利用自身的应用标识对该加密文件进行解密,若与用于生成加密文件的应用标识不一致,则会导致解密失败,进而使得未被授权使用原始文件的应用无法正确读取原始文件,因此,本实施例提供的方法能够有效避免文件被窃取、盗用。

图3为本申请另一示例性实施例示出的文件加密方法的流程图。

如图3所示,本实施例提供的文件加密方法,包括:

步骤301,获取原始文件对应的授权应用的唯一标识,并确定唯一标识是否为空;确定原始文件的长度是否大于阈值。

将一个原始文件授权给一应用时,可以通过电子设备对原始文件进行加密。在加密之前,可以先对应用标识以及原始文件是否合法进行校验。

其中,可以获取授权应用的唯一标识,并确定该唯一标识是否为空。还可以获取原始文件的长度,并确定该长度是否大于阈值。

具体的,只有当授权应用的唯一标识不为空,且原始文件长度大于一阈值时,才能够基于授权应用的标识信息对原始文件加密。

因此,当确定唯一标识不为空,且原始文件的长度大于阈值时,可以执行步骤302。

若唯一标识为空,则可以向用户反馈应用标识错误的信息;若原始文件长度小于阈值,则可以向用户提示文件小于阈值,例如文件小于1k。

步骤302,读取原始文件的原始数据,并对原始数据进行加密,得到文件数据信息。

电子设备在对一原始文件进行加密时,可以读取该原始文件中的原始数据,例如,可以读取该原始文件的字节流bf0。

其中,为了确保原始文件的数据不被直接读取,还可以对原始数据进行初步的加密处理,得到一文件数据信息s0。例如,电子设备可以基于md5算法对bf0进行加密处理,得到16位的s0。

步骤303,获取原始文件对应的授权应用的唯一标识,并对唯一标识进行加密,得到标识信息。

步骤302与步骤303的时序不做限制。

若在步骤301中读取了授权应用的唯一标识,则可以直接基于步骤301中的唯一标识得到标识信息。

具体的,授权应用的唯一标识可以由应用包名和签名信息生成,例如,可以对应用包名和签名信息进行拼接,得到唯一标识。签名信息可以是利用md5算法对应用包名进行加密得到的。

进一步的,还可以对唯一标识进行加密,以得到标识信息,例如,可以利用md5算法对唯一标识进行加密得到16位的标识信息p1。

步骤304,根据文件数据信息、标识信息确定组合数据,对组合数据进行加密得到密钥。

实际应用时,可以将获取的文件数据信息和标识信息进行组合,再利用md5算法对该组合结果进行加密,从而得到一16为的密钥key0,使得该密钥中包括授权应用的标识信息。

其中,可以将文件数据信息和标识信息进行拼接,得到该组合结果。

可选的,本实施例提供的方法还可以包括步骤305。

步骤305,获取预设字符串信息。

具体的,还可以预先设置一字符串信息,在生成密钥时可以读取该字符串信息。

一种情况下,可以直接将字符串确定为预设字符串信息,另一种情况下,还可以对读取的字符串进行md5加密,得到预设字符串信息k1。

预设的字符串可以随着加密方法版本的变化而变化,例如,可以将加密方法设置在应用程序中,该应用程序为v1版本时,预设字符串是12345,当应用程序被更新为v2版本时,预设字符从可以是54321。可以将预设字符串写入程序中,从而便于对其进行读取。

步骤306,根据文件数据信息、标识信息、预设字符串信息确定组合数据,对组合数据进行加密得到密钥。

具体的,可以对文件数据信息s0、标识信息p1、预设字符串信息k1进行拼接得到一组合数据,再对该组合数据进行加密,得到密钥key0。

进一步的,可以利用md5算法对组合数据进行加密,得到密钥key0。

步骤307,基于aes加密算法,使用密钥对原始文件的数据进行加密,得到第一加密数据。

实际应用时,电子设备可以对原始文件中的数据进行加密,具体可以对读取的原始文件字节流bf0进行加密,得到第一加密数据bf1。

其中,可以采用aes(advancedencryptionstandard,高级加密标准)的加密算法对bf0进行加密。aes加密算法可以根据一明文以及一密钥,生成对应的密文,从而实现对该明文的加密处理。本实施例提供的方法中,可以将原始文件的数据,也就是bf0作为明文来处理。

步骤308,根据文件数据信息、标识信息、第一加密数据确定第二加密数据。

可以对文件数据信息s0、标识信息p1、第一加密数据bf1进行拼接,得到第二加密数据bf2。例如,可以依次写入s0、p1、bf1的字节数组到bf2中,从而形成第二加密数据bf2。

可以直接将第二加密数据写入一文件中,形成加密文件,但是为了进一步的提高加密文件的安全性能,本实施例提供的方法还可以包括步骤309、310。

步骤309,对第二加密数据中的字节进行置换,得到第三加密数据。

其中,在第二加密数据中包括用于生成密钥key0的数据,也包括使用该密钥加密形成的第一加密数据bf1,因此,可以对这两部分数据的字节进行置换,使得用于生成密钥key0的数据被打乱,第一加密数据bf1也被打乱,从而避免对第二加密数据进行破解,获取其中用于生成密钥key0的数据,进而造成能够对第一加密数据bf1进行破解的情况。

具体的,生成第二加密数据时,除了第一加密数据以为的数据,可以看做是生成密钥key0的加密信息,因此,可以将第二加密数据看做两部分,一部分是第一加密数据,另一部分是加密信息。

可以将第二加密数据bf2中除第一加密数据bf1以外的字节数据,也就是加密信息中包括的字节数据,与第一加密数据中的字节数据进行置换,得到第三加密数据bf3。从而将加密信息混淆到第一加密数据中,以免加密信息被轻易窃取。

具体置换的方法可以包括:

s1、读取第二加密数据的第m位加密字节,读取第二加密数据中的第一加密数据中的第n×(m+1)位字节;

s2、将第m位字节与第n×(m+1)位字节进行交换;

s3、将m加1,并继续执行s1、s2;

其中,m的取值为0到第二加密数据中第一加密数据之前的字节数量。

其中,若生成第二加密数据时,将第一加密数据bf1放在最后,将文件数据信息s0、标识信息p1放在第一加密数据bf1之前,则可以顺序读取第二加密数据的前m位字节,并将其与后面的第一加密数据中的字节进行交换。m的取值为0到第二加密数据中第一加密数据之前的字节数量,也就是加密信息的字节数量。

具体的,可以先将m设置为0,读取第二加密数据中的第m位数据,即第一个字节。再读取第二加密数据中的第一加密数据中的第n×(m+1)位字节。例如,可以在第二加密数据中偏移m字节到标记f处,并从此位置开始读取第n×(m+1)位字节。前m个字节即为加密信息的字节数据。

并将读取的字节数据进行交换,从而将加密信息混淆到第一加密数据中。

进一步的,若根据文件数据信息s0、标识信息p1、第一加密数据bf1生成第二加密数据bf2,则可以将m最大值设置为31。

实际应用时,n可以设置为1024。

其中,可以对将m设置为m+1,并继续执行步骤s1、s2。

具体的,当m为0时,m×n是1024,即读取第二加密数据的第0个字节,读取其中第一加密数据的第1024个字节,将这两个字节进行交换。此后,将m设置为1,读取第二加密数据的第2个字节,读取其中第一加密数据的第1024×2个字节,并进行字节交换。以此类推,直到m的取值为31为止。

步骤310,根据第三加密数据确定原始文件对应的加密文件。

进一步的,可以将第三加密数据bf3写入一个文件,从而得到包括bf3的加密文件file1。

实际应用时,可以将该加密文件设置在授权应用中,当应用调用该文件时,可以基于应用的唯一标识对其进行破解,从而得到原始文件,再应用该原始文件。

若一未被授权的应用中设置了该加密文件,则其在对加密文件进行破解时,将会破解失败。

基于本实施例提供的方法得到的加密文件,可以基于图4、图5所示出的方法对其进行解密。

图4为本申请一示例性实施例示出的文件解密方法的流程图。

如图4所示,本实施例提供的文件解密方法,包括:

步骤401,根据加密文件获取第一加密数据、文件数据信息、授权应用的第一标识信息。

其中,第一加密数据是对原始文件的数据进行加密得到的、文件数据信息是原始文件的数据的签名信息。

具体的,本实施例提供的方法可以由一具备计算能力的电子设备执行,该电子设备例如可以是计算机、智能终端等。该电子设备中可以设置一应用,该应用在调用设置的加密文件时,可以执行本实施例提供的方法。

上述加密文件可以是通过图1或图3所示的方法对原始文件进行加密得到的。

进一步的,加密文件中的数据中包括对原始文件的数据进行加密得到的第一加密数据bf1,对原始文件的数据进行签名得到的文件数据信息以及授权应用的第一标识信息p1。比如,该加密文件是授权给应用a的,则第一标识信息为应用a的标识信息。

实际应用时,若对文件数据信息s0、授权应用的第一标识信息p1以及生成的第一加密数据bf1进行拼接,并将拼接后的数据写入一文件中,得到加密文件。则可以直接基于预先的拼接规则,从加密文件中读取到件数据信息s0、第一标识信息p1以及第一加密数据bf1。比如,直接将s0、p1与bf1进行拼接,得到加密文件,则在对文件进行解密时,可以读取加密文件数据中的前m位字节,作为so,再读取一定长度的字节数据作为p0,剩余的字节数据作为bf1。

若对文件数据信息s0、授权应用的第一标识信息p1,以及生成的第一加密数据bf1进行拼接得到第二加密数据bf2,再对第二加密数据bf2进行置换混淆得到第三加密数据bf3,则可以先基于置换混淆规则,将bf3还原为bf2,再在bf2中读取s0、p1以及bf1。

可选的,第三加密数据bf3中可能还包括其他信息,均可以基于生成bf3的规则,对其进行还原,进而得到上述第一加密数据、授权应用的第一标识信息。

步骤402,获取待验证应用的第二标识信息,并比对第一标识信息与第二标识信息。

其中,可以获取待验证应用的第二标识信息,该待验证应用是指设置有加密文件的应用。该应用调用加密文件时,需要先对其进行解密,从而得到正确的文件数据。

具体的,电子设备可以读取待验证应用的第二标识信息p0。该第二标识信息p0是指待验证应用的唯一标识信息。

一种实施方式中,可以读取待验证应用的包名及其对应的签名信息,将这一组合作为待验证应用的唯一标识信息p0。

另一种实施方式中,还可以读取待验证应用的唯一标识,并利用md5算法对该唯一标识加密得到待验证应用的标识信息p0。唯一标识可以是待验证应用的包名及其对应的签名信息,还可以是待验证应用对应的编码等内容。

进一步的,加密文件是基于授权应用的唯一标识p1生成的,因此,需要通过待验证应用的唯一标识p0对其进行解密。

实际应用时,可以比对第一标识信息p1与第二标识信息p0,即比对授权应用标识信息与待验证应用标识,若比对通过,则可以认为待验证应用是合法应用,其可以调用该加密文件,因此,可以执行步骤403。否则,可以提示用户该应用未被授权的信息。

步骤403,若比对一致,则根据第二标识信息对第一加密数据进行解密,得到原始文件的数据,并根据原始文件的数据确定与加密文件对应的原始文件。

其中,第一加密数据是根据授权应用的标识信息以及文件数据信息对原始数据进行加密得到的,因此,若第一标识信息与第二标识信息一致,则可以根据该标识信息对第一加密数据进行解密,进而得到原始文件的数据。

具体的,若根据文件数据信息、第二标识信息确定密钥,并使用密钥对原始文件的数据进行加密,得到第一加密数据。则本实施例提供的解密方案中,可以根据获取的文件数据信息、第二标识信息也生成一个密钥,并基于该密钥对第一加密数据进行解密,得到原始文件的数据。

进一步的,例如在生成加密文件时,是对文件数据信息s0、第二标识信息p0进行拼接,得到的密钥key0。则在解密时,也可以对文件数据信息s0、标识信息p0进行拼接,得到的密钥。

再例如,若获取一预先设置的字符串,结合文件数据信息s0、标识信息p0以及该字符串,生成一个密钥key0,则在解密时,也可以基于相同的方法生成密钥。

即本实施例提供的解密方法中,在第一标识信息与第二标识信息一致的情况下,可以采用与加密方法相同的生成密钥的方式,生成一密钥key1。具体生成密钥的方式可以参见图1或图3的示出的方法。由于第一标识信息与第二标识信息一致,因此,生成的密钥key1应当与加密方法中生成的密钥key0一致。

电子设备生成密钥key1后,可以使用密钥key1对第一加密数据bf1进行解密,得到原始文件的数据。

加密过程中,若基于aes(advancedencryptionstandard,高级加密标准)算法,使用密钥key0对原始文件的数据数据bf0进行加密得到第一加密数据bf1,则在解密过程中,可以基于aes算法,使用密钥key1对数据bf1进行解密,得到原始文件的数据bf0。利用aes解密算法,能够根据密钥和一段密文,得到对应的明文。

其中,电子设备还可以将解密得到的原始文件的数据bf0写入一文件中,从而得到原始文件。

本实施例提供的方法用于对文件进行解密,该方法由设置有本实施例提供的方法的设备执行,该设备通常以硬件和/或软件的方式来实现。

本实施例提供的文件解密方法,包括:根据加密文件获取第一加密数据、文件数据信息、授权应用的第一标识信息;其中,第一加密数据是对原始文件的数据进行加密得到的,文件数据信息是原始文件的数据的签名信息;获取待验证应用的第二标识信息,并比对第一标识信息与第二标识信息;若比对一致,则根据第二标识信息、文件数据信息对第一加密数据进行解密,得到原始文件的数据,并根据原始文件的数据确定与加密文件对应的原始文件。本实施例提供的方法,能够基于待验证应用的标识信息对加密文件进行解密,而加密文件是基于授权应用的标识信息对原始文件进行加密得到的,因此,使得到的加密文件与授权应用的标识紧密关联。当应用调用该加密文件时,需要先利用自身的应用标识对该加密文件进行解密,若与用于生成加密文件的应用标识不一致,则会导致解密失败,进而使得未被授权使用原始文件的应用无法正确读取原始文件,因此,本实施例提供的方法能够有效避免文件被窃取、盗用。

图5为本申请另一示例性实施例示出的文件解密方法的流程图。

步骤501,判断加密文件的大小是否大于或等于预设阈值。

具体的,本实施例提供的方法可以由一具备计算能力的电子设备执行,该电子设备例如可以是计算机、智能终端等。该电子设备中可以设置一应用,该应用在调用设置的加密文件时,可以执行本实施例提供的方法。

电子设备在对一加密文件进行解密时,可以先判断该加密文件的大小是否大于预设阈值。例如,该预设阈值可以是1056字节。

若加密文件大于或等于预设阈值,可以执行步骤502,否则,可以向用户提示文件大小不合法的信息。

图6为本申请一示例性实施例示出的第二交互界面示意图。

如图6所示,本实施例提供的方法可以应用在一移动终端中,当移动终端中的应用调用加密文件时,其可以读取该加密文件的大小,并判断加密文件是否大于预设阈值。当加密文件小于1056个字节时,可以显示如图6所示出的界面,以提示用户加密文件大小不合法。

步骤502,若是,则读取加密文件得到第三加密数据。

电子设备可以读取加密文件中的第三加密数据,例如,可以读取该加密文件的字节流bf3。

步骤503,对第三加密数据中的字节进行置换,得到第二加密数据。

若在加密过程中,通过对第二加密数据进行置换混淆得到的第三加密数据,则在解密过程中,也可以对第三加密数据进行置换混淆,从而还原出第二加密数据。

在置换时,具体可以将第三加密数据中的前k个加密字节数据与加密字节数据之后的第一加密数据进行置换,得到第二加密数据。

在加密过程中,第二加密数据中包括用于生成密钥key0的数据,也包括使用该密钥加密形成的第一加密数据bf1,因此,可以对这两部分数据的字节进行置换,使得用于生成密钥key0的数据被打乱,第一加密数据bf1也被打乱,从而避免对第二加密数据进行破解,获取其中用于生成密钥key0的数据,进而造成能够对第一加密数据bf1进行破解的情况。在还原第二加密数据时,可以采用相同的置换方法,从而还原出bf2。例如,在加密过程中,将一字节p与字节q进行了交换,则在解密过程中,可以再对其进行交换,从而还原出第二加密数据bf2。

具体的置换方法可以包括:

s1、读取第三加密数据的第m位加密字节,读取第三加密数据中加密字节数据之后的第一加密数据中的第n×(m+1)位字节;

s2、将第m位字节与第n×(m+1)位字节进行置换;

s3、将m加1,并继续执行步骤s1、s2;

其中,m的取值为0到k-1。

若第二加密数据中第一加密数据bf1在最后,文件数据信息s0、标识信息p1在第一加密数据bf1之前,且在生成第三加密数据时,将第二加密数据的前m位字节与后面的第一加密数据中的字节进行交换,则在解密过程中,可以再将第三加密数据的前m位字节与第一加密数据中的字节进行交换,从而还原出第二加密数据。

具体的,可以读取第三加密数据的第m位加密字节,读取第三加密数据中加密字节数据之后的第一加密数据中的第n×(m+1)位字节,并对其进行交换。此后可以将m更新为m+1,并继续执行上述步骤,直到m的值为k-1为止。

进一步的,第三加密数据中的前k个字节数据为被混淆的加密字节数据。例如,在生成第二加密数据时,若将文件数据信息、第一标识信息拼接在第一加密数据之前,则可以将k设置为32。

步骤504,根据第二加密数据获取第一加密数据、文件数据信息、授权应用的第一标识信息。

实际应用时,若对原始文件加密时,将文件数据信息s0、标识信息p1、第一加密数据bf1进行拼接,得到第二加密数据bf2。则在解密时,可以以此从第二加密数据中提取文件数据信息s0、授权应用的第一标识信息p1以及第一加密数据bf1。

其中可以读取第二加密数据中的第一预设位置的字节数据,将读取的字节数据确定为文件数据信息。若在生成第二加密数据时,先拼接文件数据信息,则第一预设位置为第二加密数据中的前16位字节,可以读取第二加密数据的前16位字节,进而读取文件数据信息s0。

读取第二加密数据中的第二预设位置的字节数据,将读取的字节数据确定为第一标识信息。若在生成第二加密数据时,在文件数据信息s0之后拼接了授权应用的第一标识信息p1,则第二预设位置为第二加密数据中的第17到32位字节,即可以读取第二加密数据中的第17到32位字节,进而读取第一标识信息p1。

电子设备可以读取第二加密数据除前k个加密字节以外的字节数据,并将读取的数据作为第一加密数据。若在生成第二加密数据时,在文件数据信息s0、第一标识信息p1之后拼接第一加密数据,则可以将前k个自己数据以外的字节数据作为第一加密数据。此处k的大小是文件数据信息s0、第一标识信息p1的字节长度之和。

步骤505,获取待验证应用的第二标识信息,并比对第一标识信息与第二标识信息。

步骤505与步骤502中比对第一标识信息与第二标识信息的方式相似,不再赘述。

若比对一致,则执行步骤506,否则,执行步骤508。

步骤506,若比对一致,则据文件数据信息、标识信息确定密钥,并使用密钥对第一加密数据进行解密,得到原始文件的数据。

其中,若第一标识信息与第二标识一致,则可以根据该一致的应用标识对第一加密数据进行解密,具体可以根据第二应用标识p0生成密钥,再使用该密钥对第一加密数据进行解密,从而得到原始文件的数据。

具体的,在解密过程中生成密钥的方式与加密过程生成密钥的方式一致。例如,可以根据文件数据信息、第二标识信息确定组合数据,对组合数据进行加密得到密钥。比如可以将文件数据信息和标识信息进行拼接得到拼接数据,再利用md5算法对该拼接数据进行加密,从而得到一16为的密钥key1。

进一步的,若在加密过程中,获取了一预设字符串信息,并结合该预设字符串信息生成密钥,则本实施例提供的解密方法中,也采用相同的方法生成密钥。具体可以对文件数据信息s0、标识信息p1、预设字符串信息k1进行拼接得到一组合数据,再对该组合数据进行加密,得到密钥key1。

实际应用时,若在对原始文件的数据进行加密时是基于aes算法进行加密的,则在对第一加密数据解密时,可以基于aes算法,使用密钥对第一加密数据解密,得到原始文件的数据。

步骤507,根据原始文件的数据确定与加密文件对应的原始文件。

步骤507与503中确定原始文件的方式类似,不再赘述。

步骤508,若第一标识信息与第二标识信息不一致,则提示应用未授权的信息。

若比对第一标识信息与第二标识信息不一致,则说明用于生成加密文件的应用标识与待验证应用标识不一致,即可以提示应用未授权的信息。

图7为本申请一示例性实施例示出的第三交互界面示意图。

如图7所示,本实施例提供的方法可以应用在一移动终端中,若第一应用标识与第二应用标识不一致,则可以显示如图所示的界面,提示应用未授权。

图8为本发明一示例性实施例示出的文件加密装置的结构图。

如图8所示,本实施例提供的文件加密装置,包括:

获取模块81,用于根据原始文件确定文件数据信息,并获取与所述原始文件对应的授权应用的标识信息;

密钥生成模块82,用于根据所述文件数据信息、所述标识信息确定密钥;

加密模块83,用于使用所述密钥对所述原始文件的数据进行加密,得到第一加密数据;

加密文件生成模块84,用于根据所述文件数据信息、标识信息、所述第一加密数据确定与所述原始文件对应的加密文件。

本实施例提供的文件加密装置的具体原理、实现方式和技术效果均与图1所示的实施例类似,此处不再赘述。

图9为本发明另一示例性实施例示出的文件加密装置的结构图。

如图9所示,在上述实施例的基础上,本实施例提供的文件加密装置,可选的,获取模块81包括读取单元811,用于:

读取原始文件的原始数据,并对所述原始数据进行加密,得到所述文件数据信息。

可选的,所述获取模块81包括,包括获取单元812,用于:

获取所述原始文件对应的授权应用的唯一标识,并对所述唯一标识进行加密,得到所述标识信息。

可选的,所述密钥生成模块82具体用于:

根据所述文件数据信息、所述标识信息确定组合数据,对所述组合数据进行加密得到所述密钥。

可选的,所述获取模块81还用于:

获取预设字符串信息;

所述密钥生成模块82还用于:

根据所述文件数据信息、所述标识信息、所述预设字符串确定组合数据,对所述组合数据进行加密得到所述密钥。

可选的,所述加密文件生成模块84,包括:

加密数据确定单元841,用于根据所述文件数据信息、所述标识信息、所述第一加密数据确定第二加密数据;

置换单元842,用于对所述第二加密数据中的字节进行置换,得到第三加密数据;

生成单元843,用于根据所述第三加密数据确定所述原始文件对应的加密文件。

可选的,置换单元842具体用于:

将所述第二加密数据中除所述第一加密数据以外的字节数据,与所述第一加密数据中的字节数据进行置换,得到所述第三加密数据。

可选的,所述加密数据确定单元841具体用于:

对所述文件数据信息、所述标识信息、所述第一加密数据进行拼接,得到所述第二加密数据。

可选的,置换单元842具体用于:

读取所述第二加密数据的第m位加密字节,读取所述第二加密数据中所述第一加密数据中的第n×(m+1)位字节;

将所述第m位字节与所述第n×(m+1)位字节进行交换;

将所述m加1,并继续执行上述步骤;

其中,m的取值为0到所述第二加密数据中所述第一加密数据之前的字节数量。

可选的,所述装置还包括判断模块85,用于:

获取所述原始文件对应的授权应用的唯一标识,并确定所述唯一标识是否为空;

确定所述原始文件的长度是否大于阈值;

若所述唯一标识不为空,且所述原始文件的长度大于阈值,则所述获取模块81执行所述根据原始文件确定文件数据信息,并获取与所述原始文件对应的授权应用的标识信息的步骤。

本实施例提供的文件加密装置的具体原理和实现方式均与图3所示的实施例类似,此处不再赘述。

图10为本发明一示例性实施例示出的文件解密装置的结构图。

如图10所示,本实施例提供的文件解密装置,包括:

获取模块1001,用于根据加密文件获取第一加密数据、文件数据信息、授权应用的第一标识信息;其中,所述第一加密数据是对原始文件的数据进行加密得到的,所述文件数据信息是原始文件的数据的签名信息;

比对模块1002,用于获取待验证应用的第二标识信息,并比对所述第一标识信息与所述第二标识信息;

解密模块1003,用于若比对一致,则根据所述第二标识信息、文件数据信息对所述第一加密数据进行解密,得到原始文件的数据,并根据所述原始文件的数据确定与所述加密文件对应的原始文件。

本实施例提供的文件解密装置的具体原理、实现方式和技术效果均与图4所示的实施例类似,此处不再赘述。

图11为本发明另一示例性实施例示出的文件解密装置的结构图。

如图11所示,在上述实施例的基础上,本实施例提供的文件解密装置,可选的,所述获取模块1001,包括:

读取单元10011,用于读取所述加密文件得到第三加密数据;

置换单元10012,用于对所述第三加密数据中的字节进行置换,得到第二加密数据;

获取单元10013,用于根据所述第二加密数据获取所述第一加密数据、文件数据信息、授权应用的第一标识信息。

可选的,所述置换单元10012具体用于:

将所述第三加密数据中的前k个加密字节数据与所述加密字节数据之后的第一加密数据进行置换,得到所述第二加密数据。

可选的,所述置换单元10012具体用于:

读取所述第三加密数据的第m位加密字节,读取所述第三加密数据中所述加密字节数据之后的第一加密数据中的第n×(m+1)位字节;

将所述第m位字节与所述第n×(m+1)位字节进行置换;

将所述m加1,并继续执行上述步骤;

其中,m的取值为0到k-1。

可选的,获取单元10013具体用于:

读取所述第二加密数据中的第一预设位置的字节数据,将读取的所述字节数据确定为所述文件数据信息;

读取所述第二加密数据中的第二预设位置的字节数据,将读取的所述字节数据确定为所述第一标识信息。

可选的,所述第一预设位置为前16位字节,所述第二预设位置为第17到32位字节。

可选的,获取单元10013具体用于:

将所述第二加密数据除前k个加密字节以外的字节数据,确定为所述第一加密数据。

可选的,所述装置还包括判断模块1004,用于:

判断加密文件的大小是否大于或等于预设阈值,若是,则执行所述根据加密文件获取第一加密数据、授权应用的第一标识信息的步骤。

所述比对模块1002还用于若所述第一标识信息与所述第二标识信息不一致,则提示应用未授权的信息。

可选的,所述解密模块1003包括:

密钥生成单元10031,用于据所述文件数据信息、所述第二标识信息确定密钥;

解密单元10032,用于使用所述密钥对所述第一加密数据进行解密,得到原始文件的数据。

可选的,所述密钥生成单元10031具体用于:

根据所述文件数据信息、所述第二标识信息确定组合数据,对所述组合数据进行加密得到所述密钥。

可选的,所述密钥生成单元10031具体用于:

获取预设字符串信息;

根据所述文件数据信息、所述第二标识信息、所述预设字符串确定组合数据,对所述组合数据进行加密得到所述密钥。

本实施例提供的文件解密装置的具体原理、实现方式和技术效果均与图5所示的实施例类似,此处不再赘述。

图12为本发明一示例性实施例示出的电子设备的结构图。

如图12所示,本实施例提供的电子设备包括:

存储器121;

处理器122;以及

计算机程序;

其中,所述计算机程序存储在所述存储器121中,并配置为由所述处理器122执行以实现如上所述的任一种文件加密方法或文件解密方法。

本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,

所述计算机程序被处理器执行以实现如上所述的任一种文件加密方法或文件解密方法。

本实施例还提供一种计算机程序,包括程序代码,当计算机运行所述计算机程序时,所述程序代码执行如上所述的任一种文件加密方法或文件解密方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1