CN111597576B - 基于Android编译时的assets文件加密方法、及其相关设备 - Google Patents

基于Android编译时的assets文件加密方法、及其相关设备 Download PDF

Info

Publication number
CN111597576B
CN111597576B CN202010728368.5A CN202010728368A CN111597576B CN 111597576 B CN111597576 B CN 111597576B CN 202010728368 A CN202010728368 A CN 202010728368A CN 111597576 B CN111597576 B CN 111597576B
Authority
CN
China
Prior art keywords
file
assets
target
name
encryption
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
CN202010728368.5A
Other languages
English (en)
Other versions
CN111597576A (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.)
Ping An International Smart City Technology Co Ltd
Original Assignee
Ping An International Smart City 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 Ping An International Smart City Technology Co Ltd filed Critical Ping An International Smart City Technology Co Ltd
Priority to CN202010728368.5A priority Critical patent/CN111597576B/zh
Publication of CN111597576A publication Critical patent/CN111597576A/zh
Application granted granted Critical
Publication of CN111597576B publication Critical patent/CN111597576B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及信息安全,提供了一种基于Android编译时的assets文件加密方法、及其相关设备,所述基于Android编译时的assets文件加密方法包括:获取预先配置的加密密钥和解密密钥;若执行编译时,则获取Android项目中每个模块包含的assets文件;对所有assets文件进行合并处理得到合并文件;利用加密密钥对合并文件中的assets文件进行加密处理,得到加密文件;获取代理类,并将解密密钥注入代理类中得到目标代理类;当目标代理类接收到操作用户的使用请求时,对操作用户进行权限审核确定目标用户;利用解密密钥对加密文件进行解密处理,并反馈给目标用户。本发明还涉及区块链技术,所述加密文件可存储于区块链中。本发明实现在Android开发过程中,目标用户能够及时获取加密文件。

Description

基于Android编译时的assets文件加密方法、及其相关设备
技术领域
本发明涉及人工智能技术领域,尤其涉及一种基于Android编译时的assets文件加密方法、及其相关设备。
背景技术
在Android开发过程中,Android应用程序包下的assets目录可用于存放一些和应用程序包一起打包的文件,由于存在安全文件,需要对assets文件进行加密处理,传统的加密方式主要是先对文件进行加密并放至项目工程中,但存在用户在开发过程中无法执行查阅加密文件的权限的问题,导致用户无法及时准确获取数据,进而影响用户的工作效率。
发明内容
本发明实施例提供一种基于Android编译时的assets文件加密方法、及其相关设备,以解决传统assets文件加密方法影响用户在开发过程中的查阅权限,导致用户无法及时准确获取加密文件,降低工作效率的问题。
一种基于Android编译时的assets文件加密方法,包括:
获取预先配置的加密密钥和解密密钥;
若执行编译时,则获取Android项目中每个模块包含的assets文件,其中,所述Android项目包含n个所述模块,n为大于1的正整数,且每个所述模块包含所述assets文件;
对所有所述assets文件进行合并处理,得到合并处理后的合并文件;
利用所述加密密钥对所述合并文件中的所述assets文件进行加密处理,得到加密文件;
获取代理类,并将所述解密密钥注入所述代理类中,得到注入后的目标代理类;
当所述目标代理类接收到操作用户的使用请求时,对所述操作用户进行权限审核,并将通过权限审核的所述操作用户作为目标用户;
利用所述解密密钥对所述加密文件进行解密处理,并将解密处理后的输入流反馈给所述目标用户。
一种基于Android编译时的assets文件加密装置,包括:
第一获取模块,用于获取预先配置的加密密钥和解密密钥;
第二获取模块,用于若执行编译时,则获取Android项目中每个模块包含的assets文件,其中,所述Android项目包含n个所述模块,n为大于1的正整数,且每个所述模块包含所述assets文件;
合并模块,用于对所有所述assets文件进行合并处理,得到合并处理后的合并文件;
加密处理模块,用于利用所述加密密钥对所述合并文件中的所述assets文件进行加密处理,得到加密文件;
目标代理类确定模块,用于获取代理类,并将所述解密密钥注入所述代理类中,得到注入后的目标代理类;
权限审核模块,用于当所述目标代理类接收到操作用户的使用请求时,对所述操作用户进行权限审核,并将通过权限审核的所述操作用户作为目标用户;
解密模块,用于利用所述解密密钥对所述加密文件进行解密处理,并将解密处理后的输入流反馈给所述目标用户。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于Android编译时的assets文件加密方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于Android编译时的assets文件加密方法的步骤。
上述基于Android编译时的assets文件加密方法、及其相关设备,通过先获取加密密钥和解密密钥,若执行编译时,则对Android项目中的assets文件进行合并处理以获取合并文件,在利用加密密钥对合并文件中的assets文件进行加密处理生成加密文件,将解密密钥注入获取的代理类中,得到目标代理类,当目标代理类接收到操作用户的使用请求时,对操作用户进行权限审核并提取目标用户,最后利用解密密钥对加密文件进行解密处理,并将解密处理后的输入流反馈给目标用户。通过对合并文件中的assets文件进行加密处理的方式,能够保证assets文件的安全性;再将解密密钥注入至代理类中,能够使目标代理类拥有解密的功能,便于后续目标用户在Android开发过程中,通过使用目标代理类可以直接查阅加密文件;最后对操作用户进行权限审核的方式,能够提高加密文件查阅的安全性,避免加密文件被恶意修改,保证目标用户获取加密文件的准确性;从而实现在Android开发过程中,目标用户能够及时查阅及获取加密文件,提供目标用户开发的工作效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于Android编译时的assets文件加密方法的流程图;
图2是本发明实施例提供的基于Android编译时的assets文件加密方法中步骤S4的流程图;
图3是本发明实施例提供的基于Android编译时的assets文件加密方法中步骤S42的流程图;
图4是本发明实施例提供的基于Android编译时的assets文件加密方法中步骤S5的流程图;
图5是本发明实施例提供的基于Android编译时的assets文件加密方法中步骤S54的流程图;
图6是本发明实施例提供的基于Android编译时的assets文件加密方法中步骤S6的流程图;
图7是本发明实施例提供的基于Android编译时的assets文件加密装置的示意图;
图8是本发明实施例提供的计算机设备的基本机构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的基于Android编译时的assets文件加密方法应用于服务端,服务端具体可以用独立的服务器或者多个服务器组成的服务器集群实现。在一实施例中,如图1所示,提供一种基于Android编译时的assets文件加密方法,包括如下步骤:
S1:获取预先配置的加密密钥和解密密钥。
在本发明实施例中,通过从编译脚本中获取预先配置好的加密密钥和解密密钥。其中,编译脚本是用户专门用于配置加密密钥和解密密钥的处理脚本。
需要说明的是,加密密钥和解密密钥主要是基于3DES加密技术进行设定,其中,3DES又称Triple DES,是DES加密算法的一种模式,它使用2条不同的56位的密钥对数据进行三次加密。
S2:若执行编译时,则获取Android项目中每个模块包含的assets文件,其中,Android项目包含n个模块,n为大于1的正整数,且每个模块包含assets文件。
在本发明实施例中,编译是指利用编译程序从源语言编写的源程序产生目标程序的过程,也即把高级语言变成计算机可以识别的2进制语言,由于计算机只认识1和0,编译程序可把人们熟悉的语言换成2进制语言。
具体地,若检测到客户端执行编译处理时,则直接从Android项目中获取每个模块包含的assets文件。其中,Android项目是指基于Android框架下的开发项目,其包含n个模块,且每个模块包含assets文件,n为大于1的正整数。
需要说明的是,assets文件可以表示一个assets目录,也可以表示assets目录下的文件,属于Android项目的目录结构中的一员。
需要说明的是,assets文件存在其对应的标识信息,主要为“目录”或“普通文件”,若标识信息为“目录”,则表示该assets文件为assets目录,且该assets目录具有基础名称,该assets目录下包含m个子文件;若标识信息为“普通文件”,则表示该assets文件为文件,且该文件也具有基础名称。
S3:对所有assets文件进行合并处理,得到合并处理后的合并文件。
在本发明实施例中,将所有assets文件导入到Android框架中的编译端口,通过编译端口对assets文件进行合并处理,得到合并处理后的合并文件。
其中,编译端口是指Android框架中的一个编译工具,其可用于对assets文件进行合并处理,即合并处理后的合并文件包含多个assets文件。
需要说明的是,由于Android项目可以有多个模块,每个模块都有assets目录,所以编译时会有一个合并的操作,合并后的路径根据不同的buildType会有略有不同,大体上是一个固定路径,可以在代码中拼凑得到。
在Android apk编译流程后,可以得到合并文件的task和生成的dex的task的名字,这是普通的字符串,在插件代码中可根据task的名字取得task,然后通过反射、设置代理,达到hook的效果。
S4:利用加密密钥对合并文件中的assets文件进行加密处理,得到加密文件。
在本发明实施例中,将步骤S1得到的加密密钥和合并文件一并导入到预设加密端口中进行加密处理,输出加密处理后的加密文件。其中,预设加密端口是指专门用于执行加密处理的处理端口,且该处理端口包含用户预先设定好的加密规则。
需要说明的是,当得到加密文件后,将对加密文件进行遍历,并将遍历到的加密文件对应的存储路径作为加密文件路径写入到临时文件中。
需要强调的是,为进一步保证上述加密文件的私密和安全性,上述加密文件还可以存储于一区块链的节点中。
S5:获取代理类,并将解密密钥注入代理类中,得到注入后的目标代理类。
在本发明实施例中,代理类指的是代理软件或代理服务器,也可以认为是一种网络访问方式。代理类是以jar包的形式被依赖到Android项目中,编译过程中也会进行重命名,所以不能简单的根据jar包的名字来找到代理类所在的jar包。需要遍历项目中的jar包,且代理类包含entry名称,如果某个jar包中entry名称和代理类的代理名称一样,则表示找到entry名称对应的jar包。
具体地,通过从预设数据库中直接获取代理类,将步骤S1得到的解密密钥注入该代理类,并将注入解密密钥后的代理类作为目标代理类。其中,预设数据库是指专门用于存储代理类的数据库。
S6:当目标代理类接收到操作用户的使用请求时,对操作用户进行权限审核,并将通过权限审核的操作用户作为目标用户。
在本发明实施例中,当目标代理类接收到操作用户的使用请求时,获取该操作用户对应的用户id,并根据用户id判断该操作用户是否拥有目标代理类对应的操作权限,若拥有操作权限则表示权限审核通过,并将通过权限审核的操作用户作为目标用户。
S7:利用解密密钥对加密文件进行解密处理,并将解密处理后的输入流反馈给目标用户。
在本发明实施例中,当检测到目标用户使用目标代理类读取assets文件时,从临时文件中获取加密文件路径,并根据加密文件路径获取加密文件,再利用解密密钥对加密文件进行解密处理,得到解密后的输入流,并按照预设反馈方式,将输入流和步骤S4中的临时文件一并反馈给目标用户。
其中,预设反馈方式可以是以邮件的形式,也可以直接反馈在目标用户使用目标代理类的当前页面中,此处不作限制。
本实施例中,通过先获取加密密钥和解密密钥,若执行编译时,则对Android项目中的assets文件进行合并处理以获取合并文件,在利用加密密钥对合并文件中的assets文件进行加密处理生成加密文件,将解密密钥注入获取的代理类中,得到目标代理类,当目标代理类接收到操作用户的使用请求时,对操作用户进行权限审核并提取目标用户,最后利用解密密钥对加密文件进行解密处理,并将解密处理后的输入流反馈给目标用户。通过对合并文件中的assets文件进行加密处理的方式,能够保证assets文件的安全性;再将解密密钥注入至代理类中,能够使目标代理类拥有解密的功能,便于后续目标用户在Android开发过程中,通过使用目标代理类可以直接查阅加密文件;最后对操作用户进行权限审核的方式,能够提高加密文件查阅的安全性,避免加密文件被恶意修改,保证目标用户获取加密文件的准确性;从而实现在Android开发过程中,目标用户能够及时查阅及获取加密文件,提供目标用户开发的工作效率。
在一实施例中,加密文件可存储于区块链中,如图2所示,步骤S4中,即利用加密密钥对合并文件中的assets文件进行加密处理,得到加密文件包括如下步骤:
S41:遍历合并文件中包含的assets文件,识别每个assets文件包含的标识信息,其中,assets文件包含标识信息。
在本发明实施例中,由于合并文件是由多个assets文件合并处理后得到,故合并文件中包含assets文件,通过对合并文件包含的assets文件进行遍历,每遍历到一assets文件,则识别该assets文件包含的标识信息。
S42:根据预设匹配要求和加密密钥,对标识信息对应的assets文件进行加密处理,得到加密文件。
在本发明实施例中,预设匹配要求是指用户预先设定用于匹配标识信息对应的加密方式。通过对assets文件对应的标识信息进行识别,并根据预设匹配要求,采用加密密钥对assets文件进行加密处理,得到加密处理后的加密文件。
本实施例中,通过识别assets文件包含的标识信息,根据预设匹配要求和加密密钥,对标识信息对应的assets文件进行加密处理,能够有效区分不同类型的assets文件,保证加密处理的准确性,进而保证加密文件的准确性。
在一实施例中,如图3所示,步骤S42中,即根据预设匹配要求和加密密钥,对标识信息对应的assets文件进行加密处理,得到加密文件包括如下步骤:
S421:识别assets文件包含的标识信息,其中,assets文件包含基础名称,标识信息包含目录和普通文件。
具体地,通过直接对assets文件包含的标识信息进行识别。
需要说明的是,若标识信息为目录,则表示assets文件为一个assets目录;若标识信息为普通文件,则表示assets文件为assets目录下的文件。
S422:若标识信息为目录,则将基础名称与预设目录库中的标准名称进行匹配,获取与基础名称相同的标准名称对应的子文件,其中,预设目录库包含标准名称及标准名称对应的子文件。
具体地,若识别到assets文件包含的标识信息为目录,则将assets文件包含基础名称与预设目录库中的标准名称进行匹配,若基础名称与标准名称相同,则表示该基础名称已经预先存储在预设目录库中,并从预设目录库中获取匹配成功的标准名称对应的子文件。
其中,预设目录库是指专门用于存储不同的标准名称及标准名称对应的子文件的数据库。
需要说明的是,预设目录库中必存在与基础名称相同的标准名称。
S423:利用加密密钥对子文件进行加密处理,得到加密文件。
具体地,采用3DES加密技术,利用加密密钥对子文件进行加密处理,并将加密处理后的子文件作为加密文件。
进一步地,当得到加密文件时,对加密文件进行遍历,并将遍历到的加密文件路径写入到临时文件中。
临时文件是指专门用于存储加密文件路径存储文件夹,且临时文件不会被加密,也不会被放入最终的应用程序包中,只是在后面注入代码到代理类中的时候被使用,用于读取其中保存的已经被加密的加密文件路径。
例如:存在标识信息为目录的目录A,目录A下包含目录B和加密文件C,目录B下又包含加密文件D和加密文件E,通过对加密文件进行遍历,则得到的加密文件路径为:A/B/D、A/B/E和A/C共3个加密文件路径。
S424:若标识信息为普通文件,则将基础名称与预设加密库中的加密名称进行匹配,获取与基础名称相同的加密名称对应的初始文件作为加密文件,其中,预设加密库包含加密名称和加密明对应的初始文件。
在本发明实施例中,预设加密库是指专门用于存储不同的加密名称及加密名称对应的初始文件的数据库,且预设加密库中必存在与基础名称相同的加密名称;其中,初始文件为用户预先采用加密密钥进行加密后的文件。
具体地,若识别到assets文件包含的标识信息为普通文件,则将assets文件包含基础名称与预设加密库中的加密名称进行匹配,若基础名称与加密名称匹配成功,则表示预设加密库中存在与该基础名称对应的assets文件相同的初始文件,并从预设加密库中获取匹配成功的加密名称对应的初始文件作为加密文件。
需要说明的是,由于预设加密库中预先存储了加密后的初始文件,通过基础名称与加密名称进行匹配的方式,可以有效避免assets文件出现重复加密的情况,保证文件加密的准确性。
进一步地,当得到加密文件时,对加密文件进行遍历,并将遍历到的加密文件路径写入到临时文件中。
本实施例中,识别assets文件包含的标识信息,若标识信息为目录,则获取该assets文件对应的子文件进行加密处理,得到加密文件;若标识信息为普通文件,则直接获取assets文件对应的加密文件。通过对标识信息进行识别的方式,能够从预设加密库中获取预先加密过的加密文件,避免assets文件出现重复加密的情况,从而提高加密效率及准确性,进而保证加密文件获取的效率和准确性。
在一实施例中,Android项目包含m个jar包,且每个jar包包含k个entry名称以及entry名称对应的entry对象,m和k均为大于1的正整数,如图4所示,步骤S5中,即获取代理类,并将解密密钥注入代理类中,得到注入后的目标代理类包括如下步骤:
S51:从预设代理库中获取代理类,其中,代理类包含代理名称。
具体地,通过直接从预设代理库中获取代理类,其中,预设代理库是指专门用于存储代理类的数据库。
S52:针对每个jar包,将k个entry名称分别与代理名称进行匹配,选取包含与代理名称相同的entry名称对应的jar包作为目标包。
在本发明实施例中,Android项目包含m个jar包,且每个jar包包含k个entry名称。
具体地,针对每个jar包,将k个entry名称分别与代理名称进行匹配,若entry名称与代理名称相同,则表示匹配成功,并将包含与代理名称相同的entry名称对应的jar包作为目标包。
S53:判断目标包中每个entry名称是否属于代理名称,得到判断结果。
在本发明实施例中,由于目标包是基于jar包筛选得到,故目标包也存在k个entry名称,将目标包中每个entry名称与代理名称进行比较,并根据比较情况判断entry名称是否属于代理名称,得到判断结果。
需要说明的是,若entry名称与代理名称相同,则表示entry名称属于代理名称,否则为entry名称不属于代理名称。
S54:在代理类中新建jar包作为初始jar包,并根据判断结果对初始jar包进行变更处理,得到目标代理类。
在本发明实施例中,不同的判断结果预先设定了不同的变更方式,通过在代理类中,利用预先设定的jar包创建组件新建jar包作为初始jar包,并根据预先设定的变更方式,基于判断结果对初始jar包进行变更处理,得到变更处理后的目标代理类。
例如, 一个公司要对一个部门进行奖励,奖励的条件是这个部门有个叫王小明的员工,则需要分两步:
1、首先是一个部门一个部门的找,直到找到有王小明这个员工,记下这个部门;
2、给这个部门的每个人发放奖励,是普通员工就发一般的奖励,是王小明就发特殊奖励。
则步骤S52根据entry名称找到目标包,相当于第一步,找到了这个部门;而步骤S54中根据判断结果对初始jar包进行变更处理,相当于第二步的发放奖励。
本实施例中,通过将每个jar包对应的k个entry名称,分别与获取到的代理类的代理名称进行匹配,选取包含与代理名称相同的entry名称对应的jar包作为目标包,并判断目标中每个entry名称是否属于代理名称,得到判断结果,最后根据判断结果对在代理类中新建的初始jar包进行变更处理,得到目标代理类。通过先提取目标包,在根据判断结果对初始jar包进行变更处理的方式,能够有效筛除不符合要求的无效数据,减少后续计算量,从而提高运算效率及准确性,保证目标代理类的准确获取。
在一实施例中,如图5所示,步骤S54中,即新建jar包作为初始jar包,并根据判断结果对初始jar包进行变更处理,得到目标代理类包括如下步骤:
S541:在代理类中新建jar包作为初始jar包。
具体地,在步骤S51获取到的代理类中,利用预先设定的jar包创建组件新建jar包作为初始jar包,其中,jar包创建组件是指专门用于创建jar包的计算机组件。
S542:若判断结果为entry名称不属于代理名称,则将entry名称对应的entry对象拷贝至初始jar包,以作为对初始jar包的变更处理。
具体地,若判断结果为entry名称不属于代理名称,则将entry名称对应的entry对象拷贝至初始jar包,以作为对初始jar包的变更处理。
S543:若判断结果为entry名称属于代理名称,则根据目标包对应的数据流生成目标类,并将目标类添加至初始jar包,以作为对初始jar包的变更处理,其中,目标包包含数据流。
具体地,由于目标包中包含数据流,当判断结果为entry名称属于代理名称时,根据将数据流转换成类的形式生成目标类型,并将该目标类添加至初始jar包中,以作为对初始jar包的变更处理。
S544:当根据所有判断结果完成对初始jar包的变更处理后,将代理类确定为目标代理类。
具体地,由于目标包中包含k个entry名称,判断每个entry名称是否属于代理名称将得到k个判断结果,故当根据k个判断结果完成对初始jar包的变更处理后,将变更处理后的代理类确定为目标代理类。
本实施例中,若判断结果为entry名称不属于代理名称,则将entry名称对应的entry对象拷贝至初始jar包,以作为对初始jar包的变更处理,若判断结果为entry名称属于代理名称,根据目标包对应的数据流生成目标类,并将目标类添加至初始jar包,以作为对初始jar包的变更处理,最后在完成所有变更处理后,将代理类确定为目标代理类。通过根据不同的判断结果对初始jar包进行不同方式的变更处理,能够针对不同的情况执行不同的变更处理手段,提高数据处理的多样性,从而提高目标代理类获取的准确性。
在一实施例中,如图6所示,步骤S6中,即当目标代理类接收到操作用户的使用请求时,对操作用户进行权限审核,并将通过权限审核的操作用户作为目标用户包括如下步骤:
S61:当目标代理类接收到操作用户的使用请求时,获取操作用户对应的用户id。
具体地,当目标代理类接收到操作用户的使用请求时,从预设用户表中获取操作用户对应的用户id。其中,预设用户表是指住那么用于存储操作用户对应的用户id的数据表。
S62:将用户id与预设权限表中的权限id进行匹配,选取匹配成功的用户id对应的操作用户作为目标用户,其中,预设权限表包含权限id。
具体地,将用户id与预设权限表中的权限id进行匹配,若用户id与权限id相同,则表示匹配成功,并将该用户id对应的操作用户作为目标用户。其中,预设权限表是指专门用于存储权限id的数据表。
本实施例中,通过利用用户id与权限id进行匹配的方式,能够快速准确地判断出操作用户是否拥有操作权限,进而提高后续加密文件查阅的安全性,避免加密文件被恶意修改,保证目标用户获取加密文件的准确性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种基于Android编译时的assets文件加密装置,该基于Android编译时的assets文件加密装置与上述实施例中基于Android编译时的assets文件加密方法一一对应。如图7所示,该基于Android编译时的assets文件加密装置包括第一获取模块71,第二获取模块72,合并模块73,加密处理模块74,目标代理类确定模块75,权限审核模块76和解密模块77。各功能模块详细说明如下:
第一获取模块71,用于获取预先配置的加密密钥和解密密钥;
第二获取模块72,用于若执行编译时,则获取Android项目中每个模块包含的assets文件,其中,Android项目包含n个模块,n为大于1的正整数,且每个模块包含assets文件;
合并模块73,用于对所有assets文件进行合并处理,得到合并处理后的合并文件;
加密处理模块74,用于利用加密密钥对合并文件中的assets文件进行加密处理,得到加密文件;需要强调的是,为进一步保证上述加密文件的私密和安全性,上述加密文件还可以存储于一区块链的节点中;
目标代理类确定模块75,用于获取代理类,并将解密密钥注入代理类中,得到注入后的目标代理类;
权限审核模块76,用于当目标代理类接收到操作用户的使用请求时,对操作用户进行权限审核,并将通过权限审核的操作用户作为目标用户;
解密模块77,用于利用解密密钥对加密文件进行解密处理,并将解密处理后的输入流反馈给目标用户。
进一步地,加密处理模块74包括:
遍历子模块,用于遍历合并文件中包含的assets文件,识别每个assets文件包含的标识信息,其中,assets文件包含标识信息;
加密文件确定子模块,用于根据预设匹配要求和加密密钥,对标识信息对应的assets文件进行加密处理,得到加密文件。
进一步地,加密文件确定子模块包括:
识别单元,用于识别assets文件包含的标识信息,其中,assets文件包含基础名称,标识信息包含目录和普通文件;
第一匹配单元,用于若标识信息为目录,则将基础名称与预设目录库中的标准名称进行匹配,获取与基础名称相同的标准名称对应的子文件,其中,预设目录库包含标准名称及标准名称对应的子文件;
加密密钥利用单元,用于利用加密密钥对子文件进行加密处理,得到加密文件;
第二匹配单元,用于若标识信息为普通文件,则将基础名称与预设加密库中的加密名称进行匹配,获取与基础名称相同的加密名称对应的初始文件作为加密文件,其中,预设加密库包含加密名称和加密明对应的初始文件。
进一步地,目标代理类确定模块75包括:
第三获取子模块,用于从预设代理库中获取代理类,其中,代理类包含代理名称;
目标包确定子模块,用于针对每个jar包,将k个entry名称分别与代理名称进行匹配,选取包含与代理名称相同的entry名称对应的jar包作为目标包;
判断子模块,用于判断目标包中每个entry名称是否属于代理名称,得到判断结果;
变更处理子模块,用于在代理类中新建jar包作为初始jar包,并根据判断结果对初始jar包进行变更处理,得到目标代理类。
进一步地,变更处理子模块包括:
新建单元,用于在代理类中新建jar包作为初始jar包;
第一判断结果单元,用于若判断结果为entry名称不属于代理名称,则将entry名称对应的entry对象拷贝至初始jar包,以作为对初始jar包的变更处理;
第二判断结果单元,用于若判断结果为entry名称属于代理名称,则根据目标包对应的数据流生成目标类,并将目标类添加至初始jar包,以作为对初始jar包的变更处理,其中,目标包包含数据流;
变更处理完成单元,用于当根据所有判断结果完成对初始jar包的变更处理后,将代理类确定为目标代理类。
进一步地,权限审核模块76包括:
用户id获取子模块,用于当目标代理类接收到操作用户的使用请求时,获取操作用户对应的用户id;
目标用户确定子模块,用于将用户id与预设权限表中的权限id进行匹配,选取匹配成功的用户id对应的操作用户作为目标用户,其中,预设权限表包含权限id。
本申请的一些实施例公开了计算机设备。具体请参阅图8,为本申请的一实施例中计算机设备90基本结构框图。
如图8中所示意的,所述计算机设备90包括通过系统总线相互通信连接存储器91、处理器92、网络接口93。需要指出的是,图8中仅示出了具有组件91-93的计算机设备90,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器 (Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器91至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器91可以是所述计算机设备90的内部存储单元,例如该计算机设备90的硬盘或内存。在另一些实施例中,所述存储器91也可以是所述计算机设备90的外部存储设备,例如该计算机设备90上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。当然,所述存储器91还可以既包括所述计算机设备90的内部存储单元也包括其外部存储设备。本实施例中,所述存储器91通常用于存储安装于所述计算机设备90的操作系统和各类应用软件,例如所述基于Android编译时的assets文件加密方法的程序代码等。此外,所述存储器91还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器92在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器92通常用于控制所述计算机设备90的总体操作。本实施例中,所述处理器92用于运行所述存储器91中存储的程序代码或者处理数据,例如运行所述基于Android编译时的assets文件加密方法的程序代码。
所述网络接口93可包括无线网络接口或有线网络接口,该网络接口93通常用于在所述计算机设备90与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有assets文件信息录入程序,所述assets文件信息录入程序可被至少一个处理器执行,以使所述至少一个处理器执行上述任意一种基于Android编译时的assets文件加密方法的步骤。
需要强调的是,为进一步保证上述加密文件的私密和安全性,上述加密文件还可以存储于一区块链的节点中。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台计算机设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
最后应说明的是,显然以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种基于Android编译时的assets文件加密方法,其特征在于,所述基于Android编译时的assets文件加密方法包括:
获取预先配置的加密密钥和解密密钥;
若执行编译时,则获取Android项目中每个模块包含的assets文件,其中,所述Android项目包含n个所述模块,n为大于1的正整数,且每个所述模块包含所述assets文件;
对所有所述assets文件进行合并处理,得到合并处理后的合并文件;
利用所述加密密钥对所述合并文件中的所述assets文件进行加密处理,得到加密文件;
获取代理类,并将所述解密密钥注入所述代理类中,得到注入后的目标代理类;
当所述目标代理类接收到操作用户的使用请求时,对所述操作用户进行权限审核,并将通过权限审核的所述操作用户作为目标用户;
利用所述解密密钥对所述加密文件进行解密处理,并将解密处理后的输入流反馈给所述目标用户。
2.如权利要求1所述的基于Android编译时的assets文件加密方法,其特征在于,所述加密文件可存储于区块链中,所述利用所述加密密钥对所述合并文件中的所述assets文件进行加密处理,得到加密文件的步骤包括:
遍历所述合并文件中包含的所述assets文件,识别每个所述assets文件包含的标识信息,其中,所述assets文件包含所述标识信息;
根据预设匹配要求和所述加密密钥,对所述标识信息对应的所述assets文件进行加密处理,得到所述加密文件。
3.如权利要求2所述的基于Android编译时的assets文件加密方法,其特征在于,所述根据预设匹配要求和所述加密密钥,对所述标识信息对应的所述assets文件进行加密处理,得到所述加密文件的步骤包括:
识别所述assets文件包含的标识信息,其中,所述assets文件包含基础名称,所述标识信息包含目录和普通文件;
若所述标识信息为所述目录,则将所述基础名称与预设目录库中的标准名称进行匹配,获取与所述基础名称相同的所述标准名称对应的子文件,其中,预设目录库包含所述标准名称及所述标准名称对应的所述子文件;
利用所述加密密钥对所述子文件进行加密处理,得到所述加密文件;
若所述标识信息为所述普通文件,则将所述基础名称与预设加密库中的加密名称进行匹配,获取与所述基础名称相同的所述加密名称对应的初始文件作为所述加密文件,其中,所述预设加密库包含所述加密名称和所述加密名称对应的所述初始文件。
4.如权利要求1所述的基于Android编译时的assets文件加密方法,其特征在于,所述Android项目包含m个jar包,且每个所述jar包包含k个entry名称以及所述entry名称对应的entry对象,m和k均为大于1的正整数,所述获取代理类,并将所述解密密钥注入所述代理类中,
得到注入后的目标代理类的步骤包括:
从预设代理库中获取所述代理类,其中,所述代理类包含代理名称;
针对每个所述jar包,将k个所述entry名称分别与所述代理名称进行匹配,选取包含与所述代理名称相同的所述entry名称对应的jar包作为目标包;
判断所述目标包中每个entry名称是否属于所述代理名称,得到判断结果;
在所述代理类中新建jar包作为初始jar包,并根据所述判断结果对所述初始jar包进行变更处理,得到所述目标代理类。
5.如权利要求4所述的基于Android编译时的assets文件加密方法,其特征在于,所述在所述代理类中新建jar包作为初始jar包,并根据所述判断结果对所述初始jar包进行变更处理,得到所述目标代理类的步骤包括:
在所述代理类中新建jar包作为所述初始jar包;
若所述判断结果为所述entry名称不属于所述代理名称,则将所述entry名称对应的entry对象拷贝至所述初始jar包,以作为对所述初始jar包的所述变更处理;
若所述判断结果为所述entry名称属于所述代理名称,则根据所述目标包对应的数据流生成目标类,并将所述目标类添加至所述初始jar包,以作为对所述初始jar包的所述变更处理,其中,所述目标包包含所述数据流;
当根据所有判断结果完成对所述初始jar包的所述变更处理后,将所述代理类确定为所述目标代理类。
6.如权利要求1所述的基于Android编译时的assets文件加密方法,其特征在于,所述当所述目标代理类接收到操作用户的使用请求时,对所述操作用户进行权限审核,并将通过权限审核的所述操作用户作为目标用户的步骤包括:
当所述目标代理类接收到所述操作用户的使用请求时,获取所述操作用户对应的用户id;
将所述用户id与预设权限表中的权限id进行匹配,选取匹配成功的用户id对应的操作用户作为所述目标用户,其中,预设权限表包含所述权限id。
7.一种基于Android编译时的assets文件加密装置,其特征在于,所述基于Android编译时的assets文件加密装置包括:
第一获取模块,用于获取预先配置的加密密钥和解密密钥;
第二获取模块,用于若执行编译时,则获取Android项目中每个模块包含的assets文件,其中,所述Android项目包含n个所述模块,n为大于1的正整数,且每个所述模块包含所述assets文件;
合并模块,用于对所有所述assets文件进行合并处理,得到合并处理后的合并文件;
加密处理模块,用于利用所述加密密钥对所述合并文件中的所述assets文件进行加密处理,得到加密文件;
目标代理类确定模块,用于获取代理类,并将所述解密密钥注入所述代理类中,得到注入后的目标代理类;
权限审核模块,用于当所述目标代理类接收到操作用户的使用请求时,对所述操作用户进行权限审核,并将通过权限审核的所述操作用户作为目标用户;
解密模块,用于利用所述解密密钥对所述加密文件进行解密处理,并将解密处理后的输入流反馈给所述目标用户。
8.如权利要求7所述的基于Android编译时的assets文件加密装置,其特征在于,所述加密处理模块包括:
遍历子模块,用于遍历所述合并文件中包含的所述assets文件,识别每个所述assets文件包含的标识信息,其中,所述assets文件包含所述标识信息;
加密文件确定子模块,用于根据预设匹配要求和所述加密密钥,对所述标识信息对应的所述assets文件进行加密处理,得到所述加密文件。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述基于Android编译时的assets文件加密方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于Android编译时的assets文件加密方法的步骤。
CN202010728368.5A 2020-07-27 2020-07-27 基于Android编译时的assets文件加密方法、及其相关设备 Active CN111597576B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010728368.5A CN111597576B (zh) 2020-07-27 2020-07-27 基于Android编译时的assets文件加密方法、及其相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010728368.5A CN111597576B (zh) 2020-07-27 2020-07-27 基于Android编译时的assets文件加密方法、及其相关设备

Publications (2)

Publication Number Publication Date
CN111597576A CN111597576A (zh) 2020-08-28
CN111597576B true CN111597576B (zh) 2020-11-06

Family

ID=72191846

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010728368.5A Active CN111597576B (zh) 2020-07-27 2020-07-27 基于Android编译时的assets文件加密方法、及其相关设备

Country Status (1)

Country Link
CN (1) CN111597576B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254342A (zh) * 2016-09-23 2016-12-21 西安邮电大学 Android平台下支持文件加密的安全云存储方法
CN108259169A (zh) * 2018-01-09 2018-07-06 北京大学深圳研究生院 一种基于区块链云存储的文件安全分享方法及系统
CN110610097A (zh) * 2019-09-09 2019-12-24 杭州天宽科技有限公司 一种基于安卓应用的文件传输保密系统
CN111143879A (zh) * 2019-12-26 2020-05-12 厦门市美亚柏科信息股份有限公司 一种Android平台SD卡文件保护方法、终端设备及存储介质
CN111191195A (zh) * 2019-12-10 2020-05-22 航天信息股份有限公司 一种用于保护apk的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10713388B2 (en) * 2017-05-15 2020-07-14 Polyport, Inc. Stacked encryption
CN108229188B (zh) * 2017-12-29 2021-06-15 西安慧博习兆信息技术有限公司 一种用标识密钥签署文件及验证方法
CN111143869B (zh) * 2019-12-30 2023-07-14 Oppo广东移动通信有限公司 应用程序包处理方法、装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254342A (zh) * 2016-09-23 2016-12-21 西安邮电大学 Android平台下支持文件加密的安全云存储方法
CN108259169A (zh) * 2018-01-09 2018-07-06 北京大学深圳研究生院 一种基于区块链云存储的文件安全分享方法及系统
CN110610097A (zh) * 2019-09-09 2019-12-24 杭州天宽科技有限公司 一种基于安卓应用的文件传输保密系统
CN111191195A (zh) * 2019-12-10 2020-05-22 航天信息股份有限公司 一种用于保护apk的方法和装置
CN111143879A (zh) * 2019-12-26 2020-05-12 厦门市美亚柏科信息股份有限公司 一种Android平台SD卡文件保护方法、终端设备及存储介质

Also Published As

Publication number Publication date
CN111597576A (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
US11366882B2 (en) Method and system for verifying integrity of a digital asset using a distributed hash table and a peer-to-peer distributed ledger
CN109074579B (zh) 使用分布式散列表和区块链保护计算机软件的方法及系统
WO2021218331A1 (zh) 离线软件授权方法、装置、设备及存储介质
CN108900464B (zh) 电子装置、基于区块链的数据处理方法和计算机存储介质
CN1761923B (zh) 加密数据库列的方法和设备
CN107169344B (zh) 阻挡非授权应用程序的方法以及使用该方法的装置
US20160364707A1 (en) Potentate: A Cryptography-Obfuscating, Self-Policing, Pervasive Distribution System For Digital Content
CN117278224A (zh) 用于验证身份属性信息的方法和系统
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
CN102163266A (zh) 在主机服务器之间安全地移动虚拟机
CN102171652A (zh) 为电子装置提供可信软件的方法
US7610488B2 (en) Data processing device and method and program of same
US10885516B2 (en) Secure validation using hardware security modules
CN109787768B (zh) 一种身份验证配置方法、装置及计算机可读存储介质
US7478435B2 (en) Version management system for multiple application elements
Demsky Cross-application data provenance and policy enforcement
CN111295655A (zh) 用于一个或多个进程的分布式隐私保护共享执行的计算机系统和方法
CN110597496B (zh) 应用程序的字节码文件获取方法及装置
US20230274008A1 (en) A device and a method for performing a cryptographic algorithm
CN110535642B (zh) 一种分散存储密钥的方法、智能终端及存储介质
CN111984989A (zh) 一种自身校验发布和访问url的方法、装置、系统和介质
CN111597576B (zh) 基于Android编译时的assets文件加密方法、及其相关设备
US8782429B2 (en) Securing execution of computational resources
US12032707B2 (en) Secure digital record with improved data update and sharing
US20080301654A1 (en) Program processing apparatus, program processing method and computer readable information recording medium

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