一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种安卓应用的技术加密方法及装置与流程

2022-11-19 13:18:01 来源:中国专利 TAG:


1.本技术涉及网络安全领域或金融领域,尤其涉及一种安卓应用的技术加密方法及装置。


背景技术:

2.随着智能手机的普及,大量技术被应用到手机端的应用开发上,公司的技术直接移植到手机上运行。技术往往都会采用c/c 技术进行开发,通过jni技术封装后提供给安卓手机端应用使用。通过c/c 开发的技术,反编译的难度比较大,但是存在被盗用的风险,因此需要对调用技术的应用进行授权认证,确保调用方都是经过授权的。
3.目前对应用进行验证主要采用联网进行授权认证的方式,但是这对网络有依赖,或采用本地化授权认证,一般是针对安卓应用的签名信息进行,也相当于是利用安卓应用的签名信息进行加密。其中采用本地化处理方案时,需要获取安卓应用的签名信息进行校验,在技术初始化时获取到安卓应用的路径,然后调用应用程序界面获取签名信息。在某个可以调用技术的安卓应用受到冒用时,虽然无法冒用应用的签名信息,但是只要找到技术的初始化方法,在应用初始化过程中传入将被冒用安卓应用的存放路径,就可以绕开签名信息校验直接调用技术,导致技术失窃,本地化授权认证不安全。
4.由此,如何设计出在应用初始化过程中,避免安卓应用的存放路径被冒用,导致技术安全性下降的方法成为了本领域技术人员亟待解决的技术问题。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种安卓应用的技术加密方法及装置,旨在实现避免安卓应用的存放路径被冒用,更加安全地对安卓应用进行本地化授权认证。
6.第一方面,本技术实施例提供了一种安卓应用的技术加密方法,该方法包括:
7.将安卓应用中java本地接口初始化的代码封装在一个java文件中,将所述java文件编译成class文件;
8.对所述class文件进行加密处理,并将所述加密处理后的class文件保存在安卓应用的程序文件中;
9.对所述class文件的引用路径做与所述class文件同样方式的加密处理,并将加密处理后的引用路径作为认证因子保存在所述安卓应用的程序文件中,以便java本地接口初始化时同步加载认证因子;
10.对所述安卓应用的程序文件进行加密验证,若加密验证通过,完成对所述安卓应用的技术的加密。
11.可选的,所述对所述class文件进行加密处理,具体包括:
12.利用对称加密法对class文件进行加密,将加/解密密钥和加密后的class文件拼接成一个字符串,再将所述拼接后的字符串转换成字符串明文。
13.可选的,所述对处所述安卓应用的程序文件进行加密验证,具体包括:
14.运行所述安卓应用,收到并解密述安卓应用的程序文件的路径;
15.进行第一验证,若第一验证通过,则执行进一步的验证;
16.进行第二验证,若第二验证通过,则执行进一步的验证;
17.进行第三验证,若第三验证通过,则加密验证通过。
18.可选的,所述进行第一验证,具体包括:
19.验证安卓应用的程序文件中是否存在签名信息,若所述安卓应用的程序文件中存在签名信息,则第一验证通过并对安卓应用的程序文件中签名信息进行解密处理,得到解密后的签名信息二进制数据。
20.可选的,所述进行第二验证,具体包括:
21.验证安卓应用的程序文件的路径和认证因子是否同步加载,若安卓应用的程序文件的路径和认证因子同步加载,则第二验证通过并解密认证因子。
22.可选的,所述进行第三验证,具体包括:
23.通过安卓应用的程序文件的路径读取解密后的签名信息二进制数据时,验证认证因子是否同时验证安卓应用的程序文件的路径的有效性,如果认证因子同时验证安卓应用的程序文件的路径的有效性,则第三验证通过。
24.第二方面,本技术实施例提供了一种安卓应用的技术加密装置,该装置包括:
25.编译模块,用于将安卓应用中java本地接口初始化的代码封装在一个java文件中,将所述java文件编译成class文件;
26.加/解密模块,用于对所述class文件进行加密处理,并将所述加密处理后的class文件保存在安卓应用的程序文件中;
27.对所述class文件的引用路径做与所述class文件同样方式的加密处理,并将加密处理后的引用路径作为认证因子保存在所述安卓应用的程序文件中,以便java本地接口初始化时同步加载认证因子;
28.验证模块,用于对所述安卓应用的程序文件进行加密验证,若加密验证通过,完成对所述安卓应用的技术的加密。
29.可选的,所述加/解密模块具体用于:
30.利用对称加密法对class文件进行加密,将加/解密密钥和加密后的class文件拼接成一个字符串,再将所述拼接后的字符串转换成字符串明文。
31.可选的,所述验证模块具体用于:
32.运行单元,用于运行所述安卓应用,收到并解密述安卓应用的程序文件的路径;
33.第一验证单元,用于进行第一验证,若第一验证通过,则执行进一步的验证;
34.第二验证单元,用于进行第二验证,若第二验证通过,则执行进一步的验证;
35.第三验证单元,用于进行第三验证,若第三验证通过,则加密验证通过。
36.可选的,所述验证模块还包括:
37.第一验证单元,用于验证安卓应用的程序文件中是否存在签名信息,若所述安卓应用的程序文件中存在签名信息,则第一验证通过并对安卓应用的程序文件中签名信息进行解密处理,得到解密后的签名信息二进制数据。
38.本技术实施例提供了一种安卓应用的技术加密方法,包括:将安卓应用中java本地接口初始化的代码封装在一个java文件中,将所述java文件编译成class文件;对所述
class文件进行加密处理,并将所述加密处理后的class文件保存在安卓应用的程序文件中;对所述class文件的引用路径做与所述class文件同样方式的加密处理,并将加密处理后的引用路径作为认证因子保存在所述安卓应用的程序文件中,以便java本地接口初始化时同步加载认证因子;对所述安卓应用的程序文件进行加密验证,若加密验证通过,完成对所述安卓应用的技术的加密。
39.可见,该方法通过将安卓应用中java本地接口初始化的代码封装在一个java文件中,将所述java文件编译成class文件;对所述class文件进行加密处理,并将所述加密处理后的class文件保存在安卓应用的程序文件中;对所述class文件的引用路径做与所述class文件同样的加密处理,并将所述加密处理后的引用路径作为认证因子保存在所述安卓应用的程序文件中,使得在安卓应用的程序文件调用时不仅验证签名信息,同时还会验证class文件的引用路径是否正确,避免在应用初始化过程中传入将被冒用安卓应用的存放路径,保护了技术。
40.此外,本技术还提供了一种安卓应用的技术加密的装置,其技术效果与上述方法相对应,这里不再赘述。
附图说明
41.为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本技术实施例提供的安卓应用的技术加密方法的流程图;
43.图2为本技术实施例提供的安卓应用的技术加密的加密验证的流程图;
44.图3为本技术实施例提供的安卓应用的技术加密装置的一种结构示意图。
具体实施方式
45.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.需要说明的是,本发明提供的一种安卓应用的技术加密方法及装置可用于网络安全领域或金融领域。上述仅为示例,并不对本发明提供的一种安卓应用的技术加密方法及装置的应用领域进行限定。
47.本技术实施例提供一种安卓应用的技术加密方法,该方法的方法流程图如图1所示,包括如下步骤:
48.s10,将安卓应用中java本地接口初始化的代码封装在一个java文件中,将所述java文件编译成class文件。
49.在安卓应用运行时,有时需要java代码与c/c 代码相互映射,故安卓应用中的java代码不能做混淆加密,如将java代码混淆,则会导致代码丢失,java代码不能正常映射c/c 。
50.步骤s10相当于将安卓应用中java本地接口初始化的代码转化为class文件,本技术中可以将本来并不能混淆的java代码变为class文件字符串,而在这种状态下,就可以将字符串进行混淆,达到混淆java代码进行加密的目的。
51.java本地接口初始化的代码及编译成为class文件的方式可以是根据具体的需要设置的,本技术在此不做具体的限定。
52.s20,对所述class文件进行加密处理,并将所述加密处理后的class文件保存在安卓应用的程序文件中。
53.因为class文件方便加密,将class文件加密处理的同时也要保证加密处理后的class文件的代码与安卓应用的程序文件的代码格式保持相同。
54.s30,对所述class文件的引用路径做与所述class文件同样方式的加密处理,并将加密处理后的引用路径作为认证因子保存在所述安卓应用的程序文件中,以便java本地接口初始化时同步加载认证因子。
55.将class文件的引用路径也进行加密,同时保证加密处理后的class文件引用路径的代码与安卓应用的程序文件的代码格式保持相同。将class文件的引用路径加密的目的是后续验证class文件的引用路径,避免了顶替冒用路径或是上传虚拟路径,导致签名验证被绕过。而验证class文件的引用路径后,仅顶替冒用路径或是上传虚拟路径就无法绕过签名验证,从而导致冒用应用授权失败。
56.s40,对所述安卓应用的程序文件进行加密验证,若加密验证通过,完成对所述安卓应用的技术的加密。
57.进行加密验证,保证对安卓应用的程序文件加密是有效加密,加密验证实际为执行一遍安卓应用的程序文件运行的过程,找到加密步骤中的每一个步骤是否进行了正确的处理,输出了正确的参数或文件。
58.可见,该方法通过将安卓应用中java本地接口初始化的代码封装在一个java文件中,将所述java文件编译成class文件;对所述class文件进行加密处理,并将所述加密处理后的class文件保存在安卓应用的程序文件中;对所述class文件的引用路径做与所述class文件同样的加密处理,并将所述加密处理后的引用路径作为认证因子保存在所述安卓应用的程序文件中,使得在安卓应用的程序文件调用时不仅验证签名信息,同时还会验证class文件的引用路径是否正确,避免在应用初始化过程中传入将被冒用安卓应用的存放路径,保护了技术。
59.在一些具体实施例中,步骤s20具体包括:
60.利用对称加密法对class文件进行加密,将加/解密密钥和加密后的class文件拼接成一个字符串,再将所述拼接后的字符串转换成字符串明文。
61.对称加密法是相对更符合本技术中加密方式的加密步骤,将class文件先变为字符串,再将加/解密密钥和加密后的class文件拼接成一个字符串,这种加密方式使得冒用软件更加难以识别,更加不容易找到class文件。同时使得class文件可以进行混淆,最终将拼接后的字符串转换成字符串明文,对应的安卓应用仍然可以通过预设的混淆规则找到混淆过后的class文件的字符串。
62.其中加/解密密钥的构成是可以根据具体情况设置的,本技术在此不做具体的限定。
63.在一些具体实施例中,步骤s40中的“加密验证”可以采用如下步骤,此时安卓应用的技术加密的加密验证的流程图如图2所示:
64.s401,运行所述安卓应用。
65.s402,收到并解密述安卓应用的程序文件的路径。
66.s403,进行第一验证,若第一验证通过,则执行进一步的验证。
67.验证安卓应用的程序文件中是否存在签名信息,若所述安卓应用的程序文件中存在签名信息,则第一验证通过并对安卓应用的程序文件中签名信息进行解密处理,得到解密后的签名信息二进制数据。
68.首先验证安卓应用的程序文件中是否存在签名信息,由于签名信息仍是安卓应用的程序文件验证的主体,本技术中一系列的加密方式,均是为验证安卓应用的程序文件的签名信息添加的保护措施。所以先检查签名信息是否正常存在是尤为关键的一步。然后在有签名信息的前提下,将签名信息进行解密,还原成为二进制数据。
69.s404,进行第二验证,若第二验证通过,则执行进一步的验证。
70.验证安卓应用的程序文件的路径和认证因子是否同步加载,若安卓应用的程序文件的路径和认证因子同步加载,则第二验证通过并解密认证因子。
71.验证认证因子是否在安卓应用的程序文件的路径加载时同步加载,其目的是防止有冒用软件在安卓应用的程序文件的路径加载时,顶替原有程序文路径或上传虚拟路径,故认证因子在此步骤同时加载并进行解密。而将认证因子解密是为了使得认证因子的代码还原成为满足程序文件格式的认证原码。
72.s405,进行第三验证,若第三验证通过,则加密验证通过。
73.通过安卓应用的程序文件的路径读取解密后的签名信息二进制数据时,验证认证因子是否同时验证安卓应用的程序文件的路径的有效性,如果认证因子同时验证安卓应用的程序文件的路径的有效性,则第三验证通过。
74.在步骤s404中同时加载并解密了认证因子,仍需验证验证因子在读取解密后的签名信息二进制数据时,同步验证安卓应用的程序文件的路径的有效性。其同时同步的目的是为了不给冒用软件可乘之机上传虚拟路径。保持加载每一步的程序文件时,都有对应的加密方式保护程序文件,使安卓应用的程序文件安全加载。
75.基于上述实施例提供的安卓应用的技术加密方法,本技术实施例则提供一种执行上述安卓应用的技术加密方法的装置。该安卓应用的技术加密装置的结构示意图如图3所示,安卓应用的技术加密装置包括:
76.编译模块10,用于将安卓应用中java本地接口初始化的代码封装在一个java文件中,将所述java文件编译成class文件。
77.编译模块10将安卓应用中java本地接口初始化的代码转化为class文件,本技术中可以将本来并不能混淆的java代码变为class文件字符串,而在这种状态下,就可以将字符串进行混淆,达到混淆java代码进行加密的目的。
78.加/解密模块20,用于对所述class文件进行加密处理,并将所述加密处理后的class文件保存在安卓应用的程序文件中;对所述class文件的引用路径做与所述class文件同样方式的加密处理,并将加密处理后的引用路径作为认证因子保存在所述安卓应用的程序文件中,以便java本地接口初始化时同步加载认证因子。
79.因为class文件方便加密,加/解密模块20将class文件加密处理的同时也要保证加密处理后的class文件的代码与安卓应用的程序文件的代码格式保持相同。
80.加/解密模块20将class文件的引用路径也进行加密,同时保证加密处理后的class文件引用路径的代码与安卓应用的程序文件的代码格式保持相同。将class文件的引用路径加密的目的是后续验证class文件的引用路径,避免了顶替冒用路径或是上传虚拟路径,导致签名验证被绕过。
81.验证模块30,用于对所述安卓应用的程序文件进行加密验证,若加密验证通过,完成对所述安卓应用的技术的加密。
82.验证模块30保证对安卓应用的程序文件加密是有效加密,加密验证实际为执行一遍安卓应用的程序文件运行的过程,找到加密步骤中的每一个步骤是否进行了正确的处理,输出了正确的参数或文件。
83.在一些具体实施例中,所述加/解密模块20具体用于:
84.用对称加密法对class文件进行加密,将加/解密密钥和加密后的class文件拼接成一个字符串,再将所述拼接后的字符串转换成字符串明文。
85.加/解密模块20中利用的对称加密法是相对更符合本技术中加密方式的加密步骤,将class文件先变为字符串,再将加/解密密钥和加密后的class文件拼接成一个字符串,这种加密方式使得冒用软件更加难以识别,更加不容易找到class文件。
86.在一些具体实施例中,所述验证模块30具体用于:
87.运行单元401,用于运行所述安卓应用,收到并解密述安卓应用的程序文件的路径;
88.第一验证单元402,用于进行第一验证,若第一验证通过,则执行进一步的验证;
89.第二验证单元403,用于进行第二验证,若第二验证通过,则执行进一步的验证;
90.第三验证单元404,用于进行第三验证,若第三验证通过,则加密验证通过。
91.验证模块的具体分为三个单元,三个单元的运行拥有先后顺序,只有在执行上一单元的验证后,才能进行下一单元的验证。
92.在一些具体实施例中,所述第一验证单元402具体用于:
93.验证安卓应用的程序文件中是否存在签名信息,若所述安卓应用的程序文件中存在签名信息,则第一验证通过并对安卓应用的程序文件中签名信息进行解密处理,得到解密后的签名信息二进制数据。
94.第一验证单元402首先验证安卓应用的程序文件中是否存在签名信息,先检查签名信息是否正常存在是尤为关键的一步。
95.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
96.以上对本技术所提供的方案进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献