CN106096424B - 一种对本地数据进行加密方法和终端 - Google Patents
一种对本地数据进行加密方法和终端 Download PDFInfo
- Publication number
- CN106096424B CN106096424B CN201610384132.8A CN201610384132A CN106096424B CN 106096424 B CN106096424 B CN 106096424B CN 201610384132 A CN201610384132 A CN 201610384132A CN 106096424 B CN106096424 B CN 106096424B
- Authority
- CN
- China
- Prior art keywords
- terminal
- application program
- source data
- key source
- key
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例涉及移动终端软件***技术领域,尤其涉及一种对本地数据进行加密的方法和终端,包括:终端接收应用程序的加密请求,该加密请求中包含应用程序的标识符;根据应用程序的标识符,从终端的动态链接库中获取第一密钥源数据,第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式;获取第二密钥源数据,第二密钥源数据是根据所述终端的的唯一标识确定的;将第一密钥源数据和第二密钥源数据作为密钥,采用加密算法对本地数据进行加密。可以看出,由于密钥的第一密钥源数据是随机生成的,并且保存的形式为经过分解后的表达式,而不是通过常量的形式保存密钥,因此提高了获取密钥的复杂度,从而增加了密钥的安全性。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种对本地数据进行加密的方法和终端。
背景技术
安卓***(Android)是一种以Linux为基础的开放源码操作***,主要使用于便携设备。安卓***是当前手机和平板电脑等移动设备中使用的主流操作***之一。
目前,在安卓***中应用程序通过两种方式对与应用程序有关的本地数据进行加密。
方式一、通过JAVA语言对应用程序的本地数据进行加密和解密。
方式二、通过编写C/C++语言生成动态库文件再通过java来调用动态库文件来完成对应用程序的本地数据进行加密和解密。
针对上述方式一,由于安卓***中的应用程序是用JAVA语言编写的,使得通过JAVA语言编写的加密和解密容易被反编译出较接近源码的代码,因此加密的过程与加密用的密钥都会泄露。又由于多个终端的密钥均采用同一个固定的密钥,因此只要泄露一个终端的密钥,或破解一个终端的密钥,凡是使用该密钥加密的终端的数据就都不安全了。
针对上述方式二,相对于使用JAVA语言对应用程序的本地数据进行加密和加密,使用C/C++语言对应用程序的本地数据进行加密和解密,反编译难度大,因此能更好的保护加密的过程和加密用的密钥,但由于现有技术中在通过C/C++语言对应用程序的本地数据进行加密和解密时,密钥是常量保存,而常量比较容易通过反汇编获取。
因此,现有技术中使用的C/C++语言对应用程序的本地数据进行加密和解密,虽然加密的过程安全性较高,但密钥的安全性较低。
发明内容
本发明实施例提供一种对本地数据进行加密的方法和终端,用以提升密钥的安全性。
本发明实施例提供一种对本地数据进行加密的方法,包括:
终端接收应用程序的加密请求,所述加密请求用于对终端上存储的与所述应用程序有关的本地数据进行加密,且所述加密请求中包含所述应用程序的标识符;
根据所述应用程序的标识符,从所述终端的动态链接库中获取第一密钥源数据,所述第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式;
获取第二密钥源数据,所述第二密钥源数据是根据所述终端的的唯一标识确定的;
将所述第一密钥源数据和所述第二密钥源数据作为密钥,采用加密算法对所述本地数据进行加密。
较佳的,还包括:
接收所述应用程序的解密访问请求,所述解密访问请求中包含应用程序的标识符;
根据所述应用程序的标识符,从所述终端的动态链接库中获取所述第一密钥源数据;
获取所述第二密钥源数据;
将所述第一密钥源数据和所述第二密钥源数据作为密钥,采用解密算法对所述本地数据进行解密。
较佳的,根据所述应用程序的标识符,从所述终端的动态链接库中获取所述第一密钥源数据后,还包括:
所述应用程序的标识符是根据所述应用程序的签名信息获得的;
根据所述应用程序的标识符,对所述应用程序进行验证,若验证通过,则从所述动态链接库中获取第一密钥源数据。
较佳的,,所述第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式所组成,包括:
根据随机生成的第一字符串,对照ASCII表,确定所述第一字符串中的每一位字符在十进制下的数值;
将所述第一字符串中的每一位字符在十进制下的值进行质因数分解,确定每一位字符对应的表达式;
将所述第一字符串中的每一位字符所对应的表达式按照一定的顺序存储至所述动态链接库。
较佳的,,所述获取第二密钥源数据,包括:
获取所述终端的IMEI和所述终端的***标识符;
将所述终端的IMEI和所述终端的***标识符拼接后进行短除法运算获得第二字符串。
本发明实施例提供一种对本地数据进行加密的终端,包括:
接收模块,用于接收应用程序的加密请求,所述加密请求用于对终端上存储的与所述应用程序有关的本地数据进行加密,且所述加密请求中包含所述应用程序的标识符;
查找模块,用于根据所述应用程序的标识符,从所述终端的动态链接库中获取第一密钥源数据,所述第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式;
还用于获取第二密钥源数据,所述第二密钥源数据是根据所述终端的的唯一标识确定的;
密钥模块,用于将所述第一密钥源数据和所述第二密钥源数据作为密钥,采用加密算法对所述本地数据进行加密。
较佳的,所述接收模块,还用于接收所述应用程序的解密访问请求,所述解密访问请求中包含应用程序的标识符;
所述查找模块,还用于根据所述应用程序的标识符,从所述终端的动态链接库中获取所述第一密钥源数据;
还用于获取所述第二密钥源数据;
所述密钥模块,还用于将所述第一密钥源数据和所述第二密钥源数据作为
密钥,采用解密算法对所述本地数据进行解密。
较佳的,所述查找模块在根据所述应用程序的标识符,从所述终端的动态链接库中获取所述第一密钥源数据后,还用于:
所述应用程序的标识符是根据所述应用程序的签名信息获得的;
根据所述应用程序的标识符,对所述应用程序进行验证,若验证通过,则
从所述动态链接库中获取第一密钥源数据。
较佳的,所述查找模块,具体用于:
根据随机生成的第一字符串,对照ASCII表,确定所述第一字符串中的每一位字符在十进制下的数值;
将所述第一字符串中的每一位字符在十进制下的值进行质因数分解,确定每一位字符对应的表达式;
将所述第一字符串中的每一位字符所对应的表达式按照一定的顺序存储至所述动态链接库。
较佳的,所述查找模块,具体用于:
获取所述终端的IMEI和所述终端的***标识符;
将所述终端的IMEI和所述终端的***标识符拼接后进行短除法运算获得第二字符串。
上述实施例提供的一种对本地数据进行加密的方法和终端,包括:终端接收应用程序的加密请求,该加密请求中包含应用程序的标识符;根据应用程序的标识符,从终端的动态链接库中获取第一密钥源数据,第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式;获取第二密钥源数据,第二密钥源数据是根据所述终端的的唯一标识确定的;将第一密钥源数据和第二密钥源数据作为密钥,采用加密算法对所述本地数据进行加密。可以看出,由于密钥的第一密钥源数据是随机生成的,并且保存的形式为经过分解后的表达式,而不是通过常量的形式保存密钥,因此提高了获取密钥的复杂度,从而增加了密钥的安全性,另外密钥的第二密钥源数据的生成过程由于新增了终端的固有信息参与生成,使得安装不同终端上的加密动态库可使用不同的密钥,因此即使一个密钥丢失,破解者也只能破解一个终端上加密的数据,而不能破解其它终端上加密的数据,从而提升了终端整体的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例提供的一种对本地数据进行加密的方法流程图;
图2为本发明实施例提供的一种对本地数据进行解密的方法流程图;
图3为本发明实施例提供的一种建立动态链接库的方法流程图;
图4为本发明实施例的另一种对本地数据进行加密的方法流程图;
图5为本发明实施例的另一种对本地数据进行解密的方法流程图;
图6为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示例性示出了本发明实施例提供的一种对本地数据进行加密的方法流程图,如图1所示,该方法可包括:
S101、终端接收应用程序的加密请求,该加密请求用于对终端上存储的与所述应用程序有关的本地数据进行加密,并且加密请求中包含应用程序的标识符。
S102、终端根据应用程序的标识符,从终端的动态链接库中获取第一密钥源数据,该第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式。
S103、终端获取第二密钥源数据,该第二密钥源数据是根据终端的唯一标识符确定的。
S104、终端将第一密钥源数据和第二密钥源数据作为密钥,采用加密算法对本地数据进行加密。
图2示例性示出了本发明实施例提供的一种对本地数据进行解密的方法流程图,如图2所示,该方法可包括:
S201、终端接收应用程序的解密请求,该解密请求用于对终端上存储的与所述应用程序有关的本地数据进行解密,并且解密请求中包含应用程序的标识符。
S202、终端根据应用程序的标识符,从终端的动态链接库中获取第一密钥源数据,该第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式。
S203、终端获取第二密钥源数据,该第二密钥源数据是根据终端的唯一标识符确定的。
S204、终端将第一密钥源数据和第二密钥源数据作为密钥,采用解密算法对本地数据进行解密。
上述步骤S101中的加密请求和上述步骤S201中的解密请求中所包含的应用程序的标识符,是根据应用程序的签名信息获得的。
具体的,由于安卓***有应用程序签名机制,因此每个应用程序都有一个签名,在获取到应用程序的签名信息以后,对应用程序的签名信息进行安全哈希摘要算法可得到一个40位的16进制表示的字符串。例如,在对终端的其中一个应用程序的签名信息进行安全哈希摘要算法以后得到的一个40位的16进制表示的字符串可以是:EAEEBD96 23D04567983FD1A5 251CF756 C3676A16。
在获得加密请求或解密请求中所包含的应用程序的标识符以后,还可对应用程序进行验证,若验证通过,则从动态链接库中获取第一密钥源数据。
上述步骤S102中的第一密钥源数据和上述步骤S202中的第一密钥源数据可根据算法随机生成第一字符串,并将随机生成的第一字符串,对照ASCII表,确定第一字符串中的每一位字符在十进制下的数值,将第一字符串中的每一位字符在十进制下的值进行质因数分解,确定每一位字符对应的表达式,将第一字符串中的每一位字符所对应的表达式按照一定的顺序存储至动态链接库中。
具体的,第一字符串可以由随机生成的16位字母数字组合的字符串,由于每一位字符可用8位的二进制数据表示,因此第一字符串可为128比特的二进制数据。
例如,当终端在收集到应用程序1的合法签名信息后,为应用程序1随机生成的16位的第一字符串为“0123456789ABCDEF”时,以字符A和C为例,由于字符A在ASCII(AmericanStandard Code for Information Interchange,美国信息互换标准代码)表中十进制值是65,二进制值为01000001,那么65用质因数分解可以得到65=5*13,因此在终端的动态链接库中第一字符串代码中的字符A就用5*13来代替;由于字符C在ASCII表中十进制是67,二进制01000011,因此,在终端的动态链接库中第一字符串代码中的字符C就用67*1来代替,按照上述方法,依次将为应用程序1分配的字符串“0123456789ABCDEF”转换为16个表达式,并将应用程序1所对应的转换后的16个表达式存储至动态链接库中。
在接收到应用程序1的加密请求或解密请求后,再从动态链接库库中取出应用程序1所对应的16个表达式从动态数据库中取出,然后再将16个表达式还原成字符串“0123456789ABCDEF”,并将还原后的字符串“0123456789ABCDEF”中的每个字符用二进制表示,即还原后的字符串可用16*8=128比特的二进制表示,并将128比特的二进制数据作为第一密钥源数据。
上述步骤S103中的第二密钥源数据和上述步骤S203中的第二密钥源数据可根据终端的IMEI和终端的***标识符所确定。
具体的,在获取终端的IMEI IMEI(International Mobile Equipment Identity,国际移动设备标识)和终端的***标识符后,可将终端的IMEI和终端的***标识符进行拼接,并将拼接后的字符串进行短除法运算获得第二密钥源数据。
例如,当终端的***为安卓***时,可将终端的IMEI和ANDROID_ID(安卓***标识符)进行拼接,然后对拼接后的字符串进行短除法计算后,可得到一个16位的字符串,由于每个字符可用8位的二进制数据表示,因此可得到16*8=128比特的二进制数据,最后将得到的128比特二进制数据作为第二密钥源数据。
在得到第一密钥源数据和第二密钥源数据后,将第一密钥源数据和第二密钥源数据拼接后作为密钥,采用加密算法对应用程序的本地数据进行加密或者采用解密算法对应用程序的本地数据进行解密。例如,应用程序1在得到128比特的第一密钥源数据和128比特的第二密钥源数据后,可将128比特的第一密钥源数据和128比特的第二密钥源数据组成256比特的密钥,然后采用AES(The Advanced Encryption Standard,高级数据加密标准)加密算法,对应用程序1的本地数据进行加密,或采用AES解密算法对应用程序1的本地数据进行解密。
上述方法中所使用到的动态链接库的建立流程,可参见图3。
图3示例性示出了一种建立动态链接库的方法流程图,如图3所示,该方法可包括:
S301、终端收集应用程序的签名信息。
S302、终端对应用程序的签名信息进行安全哈希摘要算法得到一个40位的16进制表示的字符串,并将得到的40位的16进制的字符串作为各个应用程序的标识符。
S303、终端在得到应用程序的标识符后,随机生成第一字符串。
S304、终端根据随机生成的第一字符串,对照ASCII表,确定第一字符串中的每一位字符在十进制下的数值。
S305、终端将第一字符串中的每一位字符在十进制下进行质因数分解,确定每一位字符对应的表达式。
S306、终端将第一字符串中每一位字符所对应的表达式按照一定的顺序存储至动态链接库中。
需要注意的是,在动态链接库中,应用程序与第一字符串转换后的表达式一一对应。
当随机生成的第一字符串为16位的字母数字所组合的字符串,即动态链接库中针对每个应用程序所存储的第一密钥源均是16个表达式按照一定的顺序组合的表达式,并且每个应用程序的第二密钥源也均为16位的字符时,终端在接收到应用程序加密请求后所执行的流程,可参见图4。
S401、终端接收应用程序的加密请求,该加密请求用于对终端上存储的与所述应用程序有关的本地数据进行加密,并且加密请求中包含应用程序的标识符。
S402、根据应用程序的标识符对应用程序进行验证,判断验证是否通过,若是,则转至步骤S403,否则结束流程。
S403、根据应用程序的标识符,从动态链接库中获取所述应用程序所对应的16个表达式。
S404、将获取的所述应用程序对应的16个表达式还原成16位的字符串,即获得第一个128比特的二进制数据。
S405、获取终端的IMEI和终端***的ID,并将终端的IMEI和终端***的ID拼接后进行短除法运算,获得16位字符,即获得第二个128比特的二进制数据。
S406、将步骤S404中获得的第一个128比特二进制数据和步骤S405获得的第二个128比特的二进制数据组合作为密钥,采用加密算法对应用程序的本地数据进行加密。
当随机生成的第一字符串为16位的字母数字所组合的字符串,即动态链接库中针对每个应用程序所存储的第一密钥源均是16个表达式按照一定的顺序组合的表达式,并且每个应用程序的第二密钥源也均为16位的字符时,终端在接收到应用程序解密请求后所执行的流程,可参见图5。
S501、终端接收应用程序的解密请求,该解密请求用于对终端上存储的与所述应用程序有关的本地数据进行解密,并且解密请求中包含应用程序的标识符。
S502、根据应用程序的标识符对应用程序进行验证,若验证通过,则转至步骤S503,否则结束流程。
S503、根据应用程序的标识符,从动态链接库中获取所述应用程序所对应的16个表达式。
S504、将获取的所述应用程序对应的16个表达式还原成16位的字符串,即获得第一个128比特的二进制数据。
S505、获取终端的IMEI和终端***的ID,并将终端的IMEI和终端***的ID拼接后进行短除法运算,获得16位字符,即获得第二个128比特的二进制数据。
S506、将步骤S504中获得的第一个128比特二进制数据和步骤S505获得的第二个128比特的二进制数据组合作为密钥,采用解密算法对应用程序的本地数据进行解密。
根据以上内容可以看出,由于密钥的第一密钥源数据通过算法是随机生成的,保存的形式为经过分解后的表达式,而不是通过常量的形式保存密钥,因此提高了获取密钥的复杂度,从而增加了密钥保存的安全性,另外密钥的第二密钥源数据的生成过程由于新增了终端的固有信息参与生成,使得安装不同终端上的加密动态库可使用不同的密钥,因此即使一个密钥丢失,破解者也只能破解一个终端上加密的数据,而不能破解其它终端上加密的数据,从而提升了终端整体的安全性。此外,还可通过应用程序的标识符过程来验证应用程序的身份,从而可进一步提升终端的本地数据的安全性。
基于相同的技术构思,本发明实施例还提供一种对本地数据进行加密的终端,如图6所示,该终端可包括包括:
接收模块601,用于接收应用程序的加密请求,所述加密请求用于对终端上存储的与所述应用程序有关的本地数据进行加密,且所述加密请求中包含所述应用程序的标识符;
查找模块602,用于根据所述应用程序的标识符,从所述终端的动态链接库中获取第一密钥源数据,所述第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式;
还用于获取第二密钥源数据,所述第二密钥源数据是根据所述终端的的唯一标识确定的;
密钥模块603,用于将所述第一密钥源数据和所述第二密钥源数据作为密钥,采用加密算法对所述本地数据进行加密。
较佳的,接收模块601,还用于接收所述应用程序的解密访问请求,所述解密访问请求中包含应用程序的标识符;
查找模块602,还用于根据所述应用程序的标识符,从所述终端的动态链接库中获取所述第一密钥源数据;
还用于获取所述第二密钥源数据;
密钥模块603,还用于将所述第一密钥源数据和所述第二密钥源数据作为密
钥,采用解密算法对所述本地数据进行解密。
较佳的,查找模块602在根据所述应用程序的标识符,从所述终端的动态链接库中获取所述第一密钥源数据后,还用于:
所述应用程序的标识符是根据所述应用程序的签名信息获得的;
根据所述应用程序的标识符,对所述应用程序进行验证,若验证通过,则
从所述动态链接库中获取第一密钥源数据。
较佳的,查找模块602,具体用于:
根据随机生成的第一字符串,对照ASCII表,确定所述第一字符串中的每一位字符在十进制下的数值;
将所述第一字符串中的每一位字符在十进制下的值进行质因数分解,确定每一位字符对应的表达式;
将所述第一字符串中的每一位字符所对应的表达式按照一定的顺序存储至所述动态链接库。
较佳的,查找模块602,具体用于:
获取所述终端的IMEI和所述终端的***标识符;
将所述终端的IMEI和所述终端的***标识符拼接后进行短除法运算获得第二字符串;
将所述第二字符串作为第二密钥源数据。
从上述内容可以看出,由于密钥的第一密钥源数据通过算法是随机生成的,保存的形式为经过分解后的表达式,而不是通过常量的形式保存密钥,因此提高了获取密钥的复杂度,从而增加了密钥保存的安全性,另外密钥的第二密钥源数据的生成过程由于新增了终端的固有信息参与生成,使得安装不同终端上的加密动态库可使用不同的密钥,因此即使一个密钥丢失,破解者也只能破解一个终端上加密的数据,而不能破解其它终端上加密的数据,从而提升了终端整体的安全性。此外,还可通过应用程序的标识符过程来验证应用程序的身份,从而可进一步提升终端的本地数据的安全性。
本发明实施例中,终端可以是无线终端,无线终端可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(例如,RAN,Radio Access Network)与一个或多个核心网进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(PCS,Personal CommunicationService)电话、无绳电话、会话发起协议(SIP)话机、无线本地环路(WLL,Wireless LocalLoop)站、个人数字助理(PDA,Personal Digital Assistant)等设备。无线终端也可以称为订户单元(Subscriber Unit)、订户站(Subscriber Station),移动站(Mobile Station)、移动台(Mobile)、远程站(Remote Station)、接入点(Access Point)、远程终端(RemoteTerminal)、接入终端(Access Terminal)、用户终端(User Terminal)、用户代理(UserAgent)、用户设备(User Device)、或用户装备(User Equipment)。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种对本地数据进行加密的方法,其特征在于,包括:
终端接收应用程序的加密请求,所述加密请求用于对终端上存储的与所述应用程序有关的本地数据进行加密,且所述加密请求中包含所述应用程序的标识符;
根据所述应用程序的标识符,从所述终端的动态链接库中获取第一密钥源数据,所述第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式;
获取第二密钥源数据,所述第二密钥源数据是根据所述终端的唯一标识确定的;
将所述第一密钥源数据和所述第二密钥源数据作为密钥,采用加密算法对所述本地数据进行加密;
其中,所述第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式所组成,包括:
根据随机生成的第一字符串,对照ASCII表,确定所述第一字符串中的每一位字符在十进制下的数值;
将所述第一字符串中的每一位字符在十进制下的值进行质因数分解,确定每一位字符对应的表达式;
将所述第一字符串中的每一位字符所对应的表达式按照一定的顺序存储至所述动态链接库。
2.如权利要求1所述的方法,其特征在于,还包括:
接收所述应用程序的解密访问请求,所述解密访问请求中包含应用程序的标识符;
根据所述应用程序的标识符,从所述终端的动态链接库中获取所述第一密钥源数据;
获取所述第二密钥源数据;
将所述第一密钥源数据和所述第二密钥源数据作为密钥,采用解密算法对所述本地数据进行解密。
3.如权利要求1或2所述的方法,其特征在于,根据所述应用程序的标识符,从所述终端的动态链接库中获取所述第一密钥源数据后,还包括:
所述应用程序的标识符是根据所述应用程序的签名信息获得的;
根据所述应用程序的标识符,对所述应用程序进行验证,若验证通过,则从所述动态链接库中获取第一密钥源数据。
4.如权利要求1或2所述的方法,其特征在于,所述获取第二密钥源数据,包括:
获取所述终端的IMEI和所述终端的***标识符;
将所述终端的IMEI和所述终端的***标识符拼接后进行短除法运算获得第二字符串;
将所述第二字符串作为第二密钥源数据。
5.一种对本地数据进行加密的终端,其特征在于,包括:
接收模块,用于接收应用程序的加密请求,所述加密请求用于对终端上存储的与所述应用程序有关的本地数据进行加密,且所述加密请求中包含所述应用程序的标识符;
查找模块,用于根据所述应用程序的标识符,从所述终端的动态链接库中获取第一密钥源数据,所述第一密钥源数据是根据随机生成的第一字符串所确定的至少一个表达式;
还用于获取第二密钥源数据,所述第二密钥源数据是根据所述终端的唯一标识确定的;
密钥模块,用于将所述第一密钥源数据和所述第二密钥源数据作为密钥,采用加密算法对所述本地数据进行加密;
其中,所述查找模块,具体用于:
根据随机生成的第一字符串,对照ASCII表,确定所述第一字符串中的每一位字符在十进制下的数值;
将所述第一字符串中的每一位字符在十进制下的值进行质因数分解,确定每一位字符对应的表达式;
将所述第一字符串中的每一位字符所对应的表达式按照一定的顺序存储至所述动态链接库。
6.如权利要求5所述的终端,其特征在于,
所述接收模块,还用于接收所述应用程序的解密访问请求,所述解密访问请求中包含应用程序的标识符;
所述查找模块,还用于根据所述应用程序的标识符,从所述终端的动态链接库中获取所述第一密钥源数据;
还用于获取所述第二密钥源数据;
所述密钥模块,还用于将所述第一密钥源数据和所述第二密钥源数据作为密钥,采用解密算法对所述本地数据进行解密。
7.如权利要求5或6所述的终端,其特征在于,所述查找模块在根据所述应用程序的标识符,从所述终端的动态链接库中获取所述第一密钥源数据后,还用于:
所述应用程序的标识符是根据所述应用程序的签名信息获得的;
根据所述应用程序的标识符,对所述应用程序进行验证,若验证通过,则从所述动态链接库中获取第一密钥源数据。
8.如权利要求5或6所述的终端,其特征在于,所述查找模块,具体用于:
获取所述终端的IMEI和所述终端的***标识符;
将所述终端的IMEI和所述终端的***标识符拼接后进行短除法运算获得第二字符串。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610384132.8A CN106096424B (zh) | 2016-06-01 | 2016-06-01 | 一种对本地数据进行加密方法和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610384132.8A CN106096424B (zh) | 2016-06-01 | 2016-06-01 | 一种对本地数据进行加密方法和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106096424A CN106096424A (zh) | 2016-11-09 |
CN106096424B true CN106096424B (zh) | 2019-03-12 |
Family
ID=57447430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610384132.8A Active CN106096424B (zh) | 2016-06-01 | 2016-06-01 | 一种对本地数据进行加密方法和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106096424B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066116B (zh) * | 2017-04-13 | 2021-07-30 | 海信视像科技股份有限公司 | 字符串生成方法、字符解析方法及装置 |
CN108737092B (zh) * | 2018-06-15 | 2021-04-13 | 董绍锋 | 移动终端管理服务器、移动终端、业务云平台和应用*** |
CN109861809B (zh) * | 2019-02-20 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 一种实用化的分组随机加解密方法 |
CN110784313A (zh) * | 2019-09-25 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种密钥的保护方法、设备以及存储介质 |
CN113032796A (zh) * | 2019-12-24 | 2021-06-25 | 杭州海康威视数字技术股份有限公司 | 数据管理方法、装置、录像机及存储介质 |
CN111241556A (zh) * | 2019-12-31 | 2020-06-05 | 重庆特斯联智慧科技股份有限公司 | 一种数据安全存储方法、装置、存储介质及终端 |
CN111506910B (zh) * | 2020-04-15 | 2023-06-06 | 上海数禾信息科技有限公司 | 数据库加密的方法及装置 |
CN112469035B (zh) * | 2020-11-26 | 2023-05-26 | 江苏特思达电子科技股份有限公司 | 一种物联网远程设备的安全激活、控制方法及通信*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218570A (zh) * | 2011-11-08 | 2013-07-24 | 三星电子株式会社 | 用于应用程序数据保护的便携式终端的装置和方法 |
CN104283853A (zh) * | 2013-07-08 | 2015-01-14 | 华为技术有限公司 | 一种提高信息安全性的方法、终端设备及网络设备 |
CN105491067A (zh) * | 2016-01-08 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 基于密钥的业务安全性验证方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8369526B2 (en) * | 2008-02-12 | 2013-02-05 | Discretix Technologies Ltd. | Device, system, and method of securely executing applications |
-
2016
- 2016-06-01 CN CN201610384132.8A patent/CN106096424B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218570A (zh) * | 2011-11-08 | 2013-07-24 | 三星电子株式会社 | 用于应用程序数据保护的便携式终端的装置和方法 |
CN104283853A (zh) * | 2013-07-08 | 2015-01-14 | 华为技术有限公司 | 一种提高信息安全性的方法、终端设备及网络设备 |
CN105491067A (zh) * | 2016-01-08 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 基于密钥的业务安全性验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106096424A (zh) | 2016-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106096424B (zh) | 一种对本地数据进行加密方法和终端 | |
CN105450620B (zh) | 一种信息处理方法及装置 | |
CN108629027B (zh) | 基于区块链的用户数据库重建方法、装置、设备及介质 | |
CN105553951A (zh) | 数据传输方法和装置 | |
CN101247605A (zh) | 短信息加密、签名方法、移动终端及短信息加密*** | |
CN104935429A (zh) | 一种采用多重加密的数据处理方法及其*** | |
CN112135086B (zh) | 一种会议录制加密方法、***和可读存储介质 | |
CN101621794A (zh) | 一种无线应用服务***的安全认证实现方法 | |
CN107196907A (zh) | 一种安卓so文件的保护方法及装置 | |
CN102984335B (zh) | 拨打固定电话的身份认证方法、设备和*** | |
CN106067874A (zh) | 一种将数据记录至服务器端的方法、终端和服务器 | |
CN109687966A (zh) | 加密方法及其*** | |
US10601586B2 (en) | Method and apparatus for key management of end encrypted transmission | |
CN102135944A (zh) | 一种在移动通讯设备中安全存储数据的方法 | |
CN105678174A (zh) | 一种基于二进制解密微信加密数据的方法 | |
CN112104460A (zh) | 一种非对称动态令牌加、解密算法的方法 | |
KR20110067417A (ko) | 데이터 암호화 방법 및 장치와 데이터 복호화 방법 및 장치 | |
CN114553590A (zh) | 数据传输方法及相关设备 | |
CN105825142A (zh) | 用于对移动终端中文档加解密的方法和装置 | |
CN104363087A (zh) | 加解密方法和装置 | |
CN110166230A (zh) | 秘钥管理方法和装置 | |
CN111866864B (zh) | 基于无线ap实现针对云平台证书的加密存储及安全使用管理的方法、装置及存储介质 | |
CN116455572B (zh) | 数据加密方法、装置及设备 | |
CN102036194B (zh) | 一种加密mms的方法及*** | |
CN116308350A (zh) | 基于同态加密的隐私交易方法、装置及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |