一种数据安全存储方法、装置、存储介质及终端与流程

专利2022-06-30  54


本发明涉及计算机技术领域,特别涉及一种数据安全存储方法、装置、存储介质及终端。



背景技术:

随着物联网、大数据、人工智能技术的不断发展,基于人脸识别技术的智能通行产品广泛应用于各种智慧场景,如:智慧社区、智慧楼宇、智慧出行等,相比较于传统钥匙、刷卡、或指纹门禁系统更加便捷、高效、安全。然而众多终智能终端存储着大量的人脸图片或人脸模型数据,为了保护用户隐私数据安全,需要采取有效的加密保护措施,防止终端隐私数据泄漏。

目前在人脸数据加密保护方法中,人脸识别应用采用标准的加密算法(如:aes、des算法等)。这种加密算法的密钥信息一般存储在代码或应用的配置文件中,存在被攻击者逆向轻易分析加密方式并窃取密钥信息的风险,同时一旦人为设定密钥,密钥的不安全管理也将引发密钥不可控的泄漏风险。因此目前人脸数据加密保护方法提升了用户隐私数据泄露的可能性。



技术实现要素:

本申请实施例提供了一种数据安全存储方法、装置、存储介质及终端。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

第一方面,本申请实施例提供了一种数据安全存储方法,所述方法包括:

获取目标文件数据;

当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥;

基于所述预设算法密钥对所述目标文件数据进行加密和解密。

可选的,所述获取目标文件数据之前,还包括:

获取预先拼接字符串;

根据预设哈希算法sha256计算所述预先拼接字符串对应的哈希值,生成所述预先拼接字符串对应的哈希值;

将所述哈希值确定为预设aes-256算法的密钥进行保存,生成aes-256算法的密钥,将所述aes-256算法的密钥作为预设算法密钥。

可选的,所述获取预先拼接字符串,包括:

基于安卓系统提供的应用程序接口获取终端设备信息和终端设备标识;

获取预设盐值字符串;

基于安卓系统提供的应用程序接口获取终端系统中的应用标识;

将所述终端设备信息和终端设备标识、所述盐值字符串和所述应用标识按照预设顺序进行拼接后生成目标字符串,将所述目标字符串作为预先拼接字符串。

可选的,所述基于所述预设算法密钥对所述目标文件数据进行加密和解密,包括:

获取预设文件操作功能模块;

当所述目标文件数据为需保护文件数据时,基于所述预设文件操作功能模块和所述预设算法密钥对所述目标文件数据进行加密和解密。

可选的,所述基于所述预设文件操作功能模块和所述预设算法密钥对所述目标文件数据进行加密和解密,包括:

当执行所述预设文件操作功能模块中的文件打开功能模块时,获取所述目标文件数据对应的文件描述符;

将所述文件描述符保存至集合类型的全局变量中;

当执行所述预设文件操作功能模块中的文件写入功能模块时,判断所述文件描述符是否在全局变量中;

当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行加密,生成加密后的文件数据;

当执行所述预设文件操作功能模块中的文件读取功能模块时,判断所述文件描述符是否在全局变量中;

当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行解密,生成解密后的文件数据;

当执行所述预设文件操作功能模块中的文件关闭功能模块时,判断所述文件描述符是否在全局变量中;

当所述文件描述符在全局变量中时,执行close函数关闭文件。

第二方面,本申请实施例提供了一种数据安全存储装置,所述装置包括:

数据获取模块,用于获取目标文件数据;

密钥获取模块,用于当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥;

数据加解密模块,用于基于所述预设预设算法密钥对所述目标文件数据进行加密和解密。

可选的,所述装置还包括:

字符串获取模块,用于获取预先拼接字符串;

哈希值生成模块,用于根据预设哈希算法sha256计算所述预先拼接字符串对应的哈希值,生成所述预先拼接字符串对应的哈希值;

密钥生成模块,用于将所述哈希值确定为预设aes-256算法的密钥进行保存,生成aes-256算法的密钥,将所述aes-256算法的密钥作为预设算法密钥。

可选的,所述字符串获取模块,包括:

数据获取单元,用于基于安卓系统提供的应用程序接口获取终端设备信息和终端设备标识;

盐值字符串获取单元,用于获取预设盐值字符串;

标识获取单元,用于基于安卓系统提供的应用程序接口获取终端系统中的应用标识;

目标字符串生成单元,用于将所述终端设备信息和终端设备标识、所述盐值字符串和所述应用标识按照预设顺序进行拼接后生成目标字符串,将所述目标字符串作为预先拼接字符串。

可选的,所述数据加解密模块,包括:

功能模块获取单元,用于获取预设文件操作功能模块;

数据加解密单元,用于当所述目标文件数据为需保护文件数据时,基于所述预设文件操作功能模块和所述预设算法密钥对所述目标文件数据进行加密和解密。

可选的,所述数据加解密单元,包括:

文件描述符获取子单元,用于当执行所述预设文件操作功能模块中的文件打开功能模块时,获取所述目标文件数据对应的文件描述符;

文件描述符保存子单元,用于将所述文件描述符保存至集合类型的全局变量中;

第一文件描述符判断子单元,用于当执行所述预设文件操作功能模块中的文件写入功能模块时,判断所述文件描述符是否在全局变量中;

第一数据生成子单元,用于当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行加密,生成加密后的文件数据;

第二文件描述符判断子单元,用于当执行所述预设文件操作功能模块中的文件读取功能模块时,判断所述文件描述符是否在全局变量中;

第二数据生成子单元,用于当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行解密,生成解密后的文件数据;

第三文件描述符判断子单元,用于当执行所述预设文件操作功能模块中的文件关闭功能模块时,判断所述文件描述符是否在全局变量中;

文件关闭子单元,用于文件当所述文件描述符在全局变量中时,执行close函数关闭所述目标文件。

第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。

第四方面,本申请实施例提供一种终端,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。

本申请实施例提供的技术方案可以包括以下有益效果:

在本申请实施例中,用户终端首先获取目标文件数据,然后当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥,最后基于所述预设算法密钥对所述目标文件数据进行加密和解密。由于本方案提供的文件加解密的密钥不是应用自身设定,而是预先保存在设备中,当对文件进行加解密操作时,可利用预先保存的密钥自动完成文件数据的加解密,从而有效保护了用户的隐私数据不被泄露。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是本申请实施例提供的一种数据安全存储方法的流程示意图;

图2是本申请实施例提供的一种安全密钥生成过程的过程示意图;

图3是本申请实施例提供的一种文件加解密的实现流程的流程示意图;

图4是本申请实施例提供的另一种数据安全存储方法的流程示意图;

图5是本申请实施例提供的一种数据安全存储装置的结构示意图;

图6是本申请实施例提供的另一种数据安全存储装置的结构示意图;

图7是本申请实施例提供的一种字符串获取模块的结构示意图;

图8是本申请实施例提供的一种数据加解密模块的结构示意图;

图9是本申请实施例提供的一种数据加解密单元的结构示意图;

图10是本申请实施例提供的一种终端的结构示意图。

具体实施方式

以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

到目前为止,对于人脸数据加密保护,人脸识别应用采用标准的加密算法(如:aes、des算法等)。这种加密算法的密钥信息一般存储在代码或应用的配置文件中,存在被攻击者逆向轻易分析加密方式并窃取密钥信息的风险,同时一旦人为设定密钥,密钥的不安全管理也将引发密钥不可控的泄漏风险。因此目前人脸数据加密保护方法提升了用户隐私数据泄露的可能性。为此,本申请提供了一种数据安全存储方法、装置、存储介质及终端,以解决上述相关技术问题中存在的问题。本申请提供的技术方案中,由于本方案提供的文件加解密的密钥不是应用自身设定,而是预先保存在设备中,当对文件进行加解密操作时,可利用预先保存的密钥自动完成文件数据的加解密,从而有效保护了用户的隐私数据不被泄露,下面采用示例性的实施例进行详细说明。

下面将结合附图1-附图4,对本申请实施例提供的数据安全存储方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的数据安全存储装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。其中,本申请实施例中的数据安全存储装置可以为用户终端,包括但不限于:个人电脑、平板电脑、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中用户终端可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personaldigitalassistant,pda)、5g网络或未来演进网络中的终端设备等。

请参见图1,为本申请实施例提供了一种数据安全存储方法的流程示意图。如图1所示,本申请实施例的所述方法可以包括以下步骤:

s101,获取目标文件数据;

其中,目标文件数据是根据自定义文件操作功能进行操作的文件数据。自定义文件操作功能是用户预先进行实现的文件操作功能函数,例如自定义的文件打开功能函数,自定义的文件写入功能函数,自定义的文件读取功能函数,自定义的文件关闭功能函数。

在本申请实施例中,当对目标文件数据进行操作时,首先需要获取到目标文件数据。

s102,当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥;

其中,操作指令是用于预先自定义的文件操作功能,用户基于预先自定义的文件操作功能发出文件操作指令。预设算法密钥是将预先获取的终端设备信息、终端设备标识、预设盐值字符串和应用标识组成的字符串进行处理生成的。

通常,在用户发出文件操作指令之前,需要预先自定义文件的操作功能和所需算法密钥。

在自定义文件操作功能中,首先基于android系统libcore.io.posix类的4个涉及文件打开、文件写入、文件读取、文件关闭操作的native层函数posix_open、posix_pwritebytes、posix_readbytes、posix_close,实现自动定义的文件操作功能函数实现。在自定义完成后,通过调用jni接口函数registernatives重新注册替换android系统框架层libcore.io.posix类中的4个native方法,实现自定义文件打开、文件写入、文件读取、文件关闭操作函数与对应系统文件操作函数的替换,实现对java层文件操作的拦截。

在自定义文件打开对应的函数posix_open时,需要在文件打开对应的函数posix_open中增加获取打开文件的路径、名称、fd(filedescriptor,文件描述符)信息的功能,增加判断打开文件是否是保护文件的功能,增加根据判断结果完成fd存储在集合类型的全局变量功能。

在自定义文件写入对应的函数posix_pwritebytes时,需要在文件写入对应的函数posix_pwritebytes中增加获取待写入文件fd的功能,增加判断fd是否在全局变量的功能,增加判断待读取文件是否是需要保护文件的功能,增加基于判断结果进行文件写入的功能。

在自定义文件读取对应的函数posix_readbytes时,需要在文件读取对应的函数posix_readbytes中增加获取待写入文件fd的功能,增加判断fd是否在全局变量的功能,增加判断待读取文件是否是需要保护文件的功能,增加基于判断结果进行文件读取的功能。

在自定义文件关闭对应的函数posix_close时,需要在文件关闭对应的函数posix_close中增加获取待写入文件fd的功能,增加判断fd是否在全局变量的功能,增加判断待读取文件是否是需要保护文件的功能,增加基于判断结果进行文件关闭的功能。

在一种可能的实现方式中,例如图2所示,图2为算法密钥生成的流程图,首先在应用启动时,获取设备信息和设备标识,再获取应用id和预先设定的盐值,然后将设备信息、设备标识、应用id和预先设定的盐值按照一定方式进行拼接成字符串,然后利用哈希算法sha256计算拼接字符串的哈希值,将此哈希值作为aes-256算法的密钥,将此密钥作为预设算法密钥保存在用户终端的内存中进行保存。当触发基于用户自定义的文件操作指令时,首先将此操作指令发送至处理器,当处理器接收到该指令后,获取预先保存在内存中的预设算法密钥。

s103,基于所述预设算法密钥对所述目标文件数据进行加密和解密。

在一种可行的实现方式中,首先基于步骤s102获取到预设算法密钥。

可选的,当用户终端接收到的文件操作指令为文件打开指令时,用户终端首先调用自定义的文件打开功能函数posix_open,通过文件打开功能函数posix_open获取打开文件的路径、名称和文件描述符,再判断是否是需要保护的文件,当是需要保护的文件时,将获取的文件描述符存储在集合类型的全局变量中。

可选的,当用户终端接收到的文件操作指令为文件写入指令时,用户终端首先调用自定义的文件写入功能函数posix_pwritebytes,通过自定义的文件写入功能函数posix_pwritebytes获取待写入文件的文件描述符,然后判断文件描述符是否在全局变量中,当在全局变量中时,则确定出待写入的文件为需要保护的文件,然后通过基于步骤s102获取到预设算法密钥和aes-256算法将输入的数据进行加密生成加密后的数据,最后通过调用安卓系统提供的应用程序原始接口write函数将加密后的数据写入文件。

可选的,当用户终端接收到的文件操作指令为文件读取指令时,用户终端首先调用自定义的文件读取功能函数posix_readbytes,通过自定义的文件读取函数posix_readbytes获取待读取文件的文件描述符,然后判断文件描述符是否在全局变量中,当判断文件描述符在全局变量中时确定待读取的文件是需要保护的文件,此时通过调用安卓系统提供的应用程序原始接口read函数读取数据,然后通过基于步骤s102获取到预设算法密钥和aes-256算法进行数据解密,最后将解密后的数据进行返回。

可选的,当用户终端接收到的文件操作指令为文件读取指令时,用户终端首先调用自定义的文件关闭功能函数posix_close,通过自定义的文件关闭函数posix_close获取待读取文件的文件描述符,然后判断文件描述符是否在全局变量中,当判断文件描述符在全局变量中时确定待读取的文件是需要保护的文件,此时通过调用安卓系统提供的应用程序原始接口close函数关闭文件。

在本申请实施例中,用户终端首先获取目标文件数据,然后当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥,最后基于所述预设算法密钥对所述目标文件数据进行加密和解密。由于本方案提供的文件加解密的密钥不是应用自身设定,而是预先保存在设备中,当对文件进行加解密操作时,可利用预先保存的密钥自动完成文件数据的加解密,从而有效保护了用户的隐私数据不被泄露。

请参见图4,为本申请实施例提供的一种数据安全存储方法的流程示意图。本实施例以数据安全存储方法应用于用户终端中来举例说明。该数据安全存储方法可以包括以下步骤:

s101,基于安卓系统提供的应用程序接口获取终端设备信息和终端设备标识;

其中,安卓系统是是一种基于linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑。应用程序接口是预先定义的功能函数,软件开发人员可以直接进行调用来实现具体的功能。终端设备信息是终端生产时的信息集合,终端设备标识是终端唯一的识别码。

在一种可能的实现方式中,用户终端通过安卓系统提供的应用程序接口获取终端设备信息build.fingerprint(该值是多种设备信息和系统信息组成的字符串)。通过安卓系统提供的应用程序接口,获取终端设备标识android_id(设备首次启动时,系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,这个16进制的字符串就是android_id)。

s102,获取预设盐值字符串;

其中,盐值字符串相当于用来加密的字符串,该字符串是用户终端用来和其他数据进行组合来生成随机数据。

s103,基于安卓系统提供的应用程序接口获取终端系统中的应用标识;

在一种可能的实现方式中,用户终端通过安卓系统提供的应用程序接口getuid()函数获取应用在终端系统的应用id(每个应用安装后,android系统都会为该应用随机分配一个id值作为应用标识)。

s104,将所述终端设备信息和终端设备标识、所述盐值字符串和所述应用标识按照预设顺序进行拼接后生成目标字符串,将所述目标字符串作为预先拼接字符串,;

在本申请实施例中,当基于步骤s101~步骤s103获取到终端设备信息build.fingerprint、终端设备标识android_id、预设盐值字符串和应用标识后,按照一定的顺序进行拼接成新的字符串。

s105,根据预设哈希算法sha256计算所述预先拼接字符串对应的哈希值,生成所述预先拼接字符串对应的哈希值;

在本申请实施例中,根据步骤s104获取到新的字符串后,通过预设哈希算法sha256对拼接的字符串进行哈希值计算,计算后得到新字符串对应的哈希值。

s106,将所述哈希值确定为预设aes-256算法的密钥进行保存,生成aes-256算法的密钥,将所述aes-256算法的密钥作为预设算法密钥;

在本申请实施例中,将步骤s105中计算得到的哈希值确定为预设aes-256算法的密钥,然后进行保存至内存中,生成aes-256算法的密钥。

s107,获取目标文件数据;

具体可参见步骤s101,此处不再赘述。

s108,当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥;

具体可参见步骤s102,此处不再赘述。

s109,获取预设文件操作功能模块;

具体可参见步骤s102中自定义的文件操作功能模块,此处不再赘述。

s110,当所述目标文件数据为需保护文件数据时,基于所述预设文件操作功能模块和所述预设算法密钥对所述目标文件数据进行加密和解密。

在一种可能的实现方式中,例如图3所示,首先基于android系统libcore.io.posix类的4个涉及文件打开、文件写入、文件读取、文件关闭操作的native层函数posix_open、posix_pwritebytes、posix_readbytes、posix_close,实现自动定义的文件操作功能函数实现。

在自定义完成后,通过调用jni接口函数registernatives重新注册替换android系统框架层libcore.io.posix类中的4个native方法,实现自定义文件打开、文件写入、文件读取、文件关闭操作函数与对应系统文件操作函数的替换,实现对java层文件操作的拦截。

可选的,在重新注册native方法后,在执行自定义的文件打开功能函数posix_open时,判断文件名匹配是否需要加密,如果需要加密时,将fd值写入全局变量中,全局变量存储加密文件的fd。如果不需要加密时,调用底层库open函数进行打开。

可选的,在执行自定义的文件读取功能函数posix_readbytes时,调用底层库函数进行读取,然后判断文件名匹配是否需要解密,如果需要解密时,解密数据。如果不需要解密时,执行结束返回。

可选的,在执行自定义的文件写入功能函数posix_pwritebytes时,判断文件名匹配是否需要加密,如果需要加密时,进行数据加密。如果不需要加密时,调用底层库write函数进行数据写入。

可选的,在执行自定义的文件关闭功能函数posix_close时,判断全局变量中匹配是否需要释放,如果需要释放时,删除全局变量中的fd,如果不需要释放时,调用底层库close函数,执行结束返回。

在本申请实施例中,用户终端首先获取目标文件数据,然后当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥,最后基于所述预设算法密钥对所述目标文件数据进行加密和解密。由于本方案提供的文件加解密的密钥不是应用自身设定,而是预先保存在设备中,当对文件进行加解密操作时,可利用预先保存的密钥自动完成文件数据的加解密,从而有效保护了用户的隐私数据不被泄露。

下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。

请参见图5,其示出了本发明一个示例性实施例提供的数据安全存储装置的结构示意图。该数据安全存储装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括数据获取模块10、密钥获取模块20、数据加解密模块30。

数据获取模块10,用于获取目标文件数据;

密钥获取模块20,用于当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥;

数据加解密模块30,用于基于所述预设预设算法密钥对所述目标文件数据进行加密和解密。

可选的,如图6所示,所述装置1还包括:

字符串获取模块40,用于获取预先拼接字符串;

哈希值生成模块50,用于根据预设哈希算法sha256计算所述预先拼接字符串对应的哈希值,生成所述预先拼接字符串对应的哈希值;

密钥生成模块60,用于将所述哈希值确定为预设aes-256算法的密钥进行保存,生成aes-256算法的密钥,将所述aes-256算法的密钥作为预设算法密钥。

可选的,如图7所示,所述字符串获取模块40,包括:

数据获取单元410,用于基于安卓系统提供的应用程序接口获取终端设备信息和终端设备标识;

盐值字符串获取单元420,用于获取预设盐值字符串;

标识获取单元430,用于基于安卓系统提供的应用程序接口获取终端系统中的应用标识;

目标字符串生成单元440,用于将所述终端设备信息和终端设备标识、所述盐值字符串和所述应用标识按照预设顺序进行拼接后生成目标字符串,将所述目标字符串作为预先拼接字符串。

可选的,如图8所示,所述数据加解密模块30,包括:

功能模块获取单元310,用于获取预设文件操作功能模块;

数据加解密单元320,用于当所述目标文件数据为需保护文件数据时,基于所述预设文件操作功能模块和所述预设算法密钥对所述目标文件数据进行加密和解密。

可选的,如图9所示,所述数据加解密单元320,包括:

文件描述符获取子单元3201,用于当执行所述预设文件操作功能模块中的文件打开功能模块时,获取所述目标文件数据对应的文件描述符;

文件描述符保存子单元3202,用于将所述文件描述符保存至集合类型的全局变量中;

第一文件描述符判断子单元3203,用于当执行所述预设文件操作功能模块中的文件写入功能模块时,判断所述文件描述符是否在全局变量中;

第一数据生成子单元3204,用于当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行加密,生成加密后的文件数据;

第二文件描述符判断子单元3205,用于当执行所述预设文件操作功能模块中的文件读取功能模块时,判断所述文件描述符是否在全局变量中;

第二数据生成子单元3206,用于当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行解密,生成解密后的文件数据;

第三文件描述符判断子单元3207,用于当执行所述预设文件操作功能模块中的文件关闭功能模块时,判断所述文件描述符是否在全局变量中;

文件关闭子单元3208,用于文件当所述文件描述符在全局变量中时,执行close函数关闭所述目标文件。

需要说明的是,上述实施例提供的数据安全存储装置在执行数据安全存储方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据安全存储装置与数据安全存储方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请实施例中,用户终端首先获取目标文件数据,然后当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥,最后基于所述预设算法密钥对所述目标文件数据进行加密和解密。由于本方案提供的文件加解密的密钥不是应用自身设定,而是预先保存在设备中,当对文件进行加解密操作时,可利用预先保存的密钥自动完成文件数据的加解密,从而有效保护了用户的隐私数据不被泄露。

本发明还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的数据安全存储方法。

本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例所述的数据安全存储方法。

请参见图10,为本申请实施例提供了一种终端的结构示意图。如图10所示,所述终端1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。

其中,通信总线1002用于实现这些组件之间的连接通信。

其中,用户接口1003可以包括显示屏(display)、摄像头(camera),可选用户接口1003还可以包括标准的有线接口、无线接口。

其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行电子设备1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。

其中,存储器1005可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据安全存储应用程序。

在图10所示的终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的数据安全存储应用程序,并具体执行以下操作:

获取目标文件数据;

当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥;

基于所述预设算法密钥对所述目标文件数据进行加密和解密。

在一个实施例中,所述处理器1001在执行所述获取目标文件数据之前时,具体还执行以下操作:

获取预先拼接字符串;

根据预设哈希算法sha256计算所述预先拼接字符串对应的哈希值,生成所述预先拼接字符串对应的哈希值;

将所述哈希值确定为预设aes-256算法的密钥进行保存,生成aes-256算法的密钥,将所述aes-256算法的密钥作为预设算法密钥。

在一个实施例中,所述处理器1001在执行所述获取预先拼接字符串时,具体执行以下操作:

基于安卓系统提供的应用程序接口获取终端设备信息和终端设备标识;

获取预设盐值字符串;

基于安卓系统提供的应用程序接口获取终端系统中的应用标识;

将所述终端设备信息和终端设备标识、所述盐值字符串和所述应用标识按照预设顺序进行拼接后生成目标字符串,将所述目标字符串作为预先拼接字符串。

在一个实施例中,所述处理器1001在执行所述基于所述预设算法密钥对所述目标文件数据进行加密和解密时,具体执行以下操作:

获取预设文件操作功能模块;

当所述目标文件数据为需保护文件数据时,基于所述预设文件操作功能模块和所述预设算法密钥对所述目标文件数据进行加密和解密。

在一个实施例中,所述处理器1001在执行所述基于所述预设文件操作功能模块和所述预设算法密钥对所述目标文件数据进行加密和解密时,具体执行以下操作:

当执行所述预设文件操作功能模块中的文件打开功能模块时,获取所述目标文件数据对应的文件描述符;

将所述文件描述符保存至集合类型的全局变量中;

当执行所述预设文件操作功能模块中的文件写入功能模块时,判断所述文件描述符是否在全局变量中;

当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行加密,生成加密后的文件数据;

当执行所述预设文件操作功能模块中的文件读取功能模块时,判断所述文件描述符是否在全局变量中;

当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行解密,生成解密后的文件数据;

当执行所述预设文件操作功能模块中的文件关闭功能模块时,判断所述文件描述符是否在全局变量中;

当所述文件描述符在全局变量中时,执行close函数关闭所述目标文件。

在本申请实施例中,用户终端首先获取目标文件数据,然后当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥,最后基于所述预设算法密钥对所述目标文件数据进行加密和解密。由于本方案提供的文件加解密的密钥不是应用自身设定,而是预先保存在设备中,当对文件进行加解密操作时,可利用预先保存的密钥自动完成文件数据的加解密,从而有效保护了用户的隐私数据不被泄露。

本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。所属技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本文所披露的实施例中,应该理解到,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

应当理解的是,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。


技术特征:

1.一种数据安全存储方法,其特征在于,所述方法包括:

获取目标文件数据;

当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥;

基于所述预设算法密钥对所述目标文件数据进行加密和解密。

2.根据权利要求1所述的方法,其特征在于,所述获取目标文件数据之前,还包括:

获取预先拼接字符串;

根据预设哈希算法sha256计算所述预先拼接字符串对应的哈希值,生成所述预先拼接字符串对应的哈希值;

将所述哈希值确定为预设aes-256算法的密钥进行保存,生成aes-256算法的密钥,将所述aes-256算法的密钥作为预设算法密钥。

3.根据权利要求2所述的方法,其特征在于,所述获取预先拼接字符串,包括:

基于安卓系统提供的应用程序接口获取终端设备信息和终端设备标识;

获取预设盐值字符串;

基于安卓系统提供的应用程序接口获取终端系统中的应用标识;

将所述终端设备信息和终端设备标识、所述盐值字符串和所述应用标识按照预设顺序进行拼接后生成目标字符串,将所述目标字符串作为预先拼接字符串。

4.根据权利要求1所述的方法,其特征在于,所述基于所述预设算法密钥对所述目标文件数据进行加密和解密,包括:

获取预设文件操作功能模块;

当所述目标文件数据为需保护文件数据时,基于所述预设文件操作功能模块和所述预设算法密钥对所述目标文件数据进行加密和解密。

5.根据权利要求4所述的方法,其特征在于,所述基于所述预设文件操作功能模块和所述预设算法密钥对所述目标文件数据进行加密和解密,包括:

当执行所述预设文件操作功能模块中的文件打开功能模块时,获取所述目标文件数据对应的文件描述符;

将所述文件描述符保存至集合类型的全局变量中;

当执行所述预设文件操作功能模块中的文件写入功能模块时,判断所述文件描述符是否在全局变量中;

当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行加密,生成加密后的文件数据;

当执行所述预设文件操作功能模块中的文件读取功能模块时,判断所述文件描述符是否在全局变量中;

当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行解密,生成解密后的文件数据;

当执行所述预设文件操作功能模块中的文件关闭功能模块时,判断所述文件描述符是否在全局变量中;

当所述文件描述符在全局变量中时,执行close函数关闭所述目标文件。

6.一种数据安全存储装置,其特征在于,所述装置包括:

数据获取模块,用于获取目标文件数据;

密钥获取模块,用于当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥;

数据加解密模块,用于基于所述预设预设算法密钥对所述目标文件数据进行加密和解密。

7.根据权利要求6所述的装置,其特征在于,所述装置还包括:

字符串获取模块,用于获取预先拼接字符串;

哈希值生成模块,用于根据预设哈希算法sha256计算所述预先拼接字符串对应的哈希值,生成所述预先拼接字符串对应的哈希值;

密钥生成模块,用于将所述哈希值确定为预设aes-256算法的密钥进行保存,生成aes-256算法的密钥,将所述aes-256算法的密钥作为预设算法密钥。

8.根据权利要求7所述的装置,其特征在于,所述字符串获取模块,包括:

数据获取单元,用于基于安卓系统提供的应用程序接口获取终端设备信息和终端设备标识;

盐值字符串获取单元,用于获取预设盐值字符串;

标识获取单元,用于基于安卓系统提供的应用程序接口获取终端系统中的应用标识;

目标字符串生成单元,用于将所述终端设备信息和终端设备标识、所述盐值字符串和所述应用标识按照预设顺序进行拼接后生成目标字符串,将所述目标字符串作为预先拼接字符串。

9.根据权利要求6所述的装置,其特征在于,所述数据加解密模块,包括:

功能模块获取单元,用于获取预设文件操作功能模块;

数据加解密单元,用于当所述目标文件数据为需保护文件数据时,基于所述预设文件操作功能模块和所述预设算法密钥对所述目标文件数据进行加密和解密。

10.根据权利要求9所述的装置,其特征在于,所述数据加解密单元,包括:

文件描述符获取子单元,用于当执行所述预设文件操作功能模块中的文件打开功能模块时,获取所述目标文件数据对应的文件描述符;

文件描述符保存子单元,用于将所述文件描述符保存至集合类型的全局变量中;

第一文件描述符判断子单元,用于当执行所述预设文件操作功能模块中的文件写入功能模块时,判断所述文件描述符是否在全局变量中;

第一数据生成子单元,用于当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行加密,生成加密后的文件数据;

第二文件描述符判断子单元,用于当执行所述预设文件操作功能模块中的文件读取功能模块时,判断所述文件描述符是否在全局变量中;

第二数据生成子单元,用于当所述文件描述符在全局变量中时,根据所述预设算法密钥对所述目标文件数据进行解密,生成解密后的文件数据;

第三文件描述符判断子单元,用于当执行所述预设文件操作功能模块中的文件关闭功能模块时,判断所述文件描述符是否在全局变量中;

文件关闭子单元,用于文件当所述文件描述符在全局变量中时,执行close函数关闭所述目标文件。

11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~5任意一项的方法步骤。

12.一种终端,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~5任意一项的方法步骤。

技术总结
本发明公开了一种数据安全存储方法、装置、存储介质及终端,所述方法包括:获取目标文件数据;当接收到针对所述目标文件输入的操作指令时,获取预设算法密钥;基于所述预设算法密钥对所述目标文件数据进行加密和解密。因此,采用本申请实施例,可以防止终端隐私数据泄漏。

技术研发人员:程先伟;李学庆
受保护的技术使用者:重庆特斯联智慧科技股份有限公司
技术研发日:2019.12.31
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-56077.html

最新回复(0)