CN112507291B - Android设备的唯一标识的生成方法和装置 - Google Patents

Android设备的唯一标识的生成方法和装置 Download PDF

Info

Publication number
CN112507291B
CN112507291B CN202011310864.5A CN202011310864A CN112507291B CN 112507291 B CN112507291 B CN 112507291B CN 202011310864 A CN202011310864 A CN 202011310864A CN 112507291 B CN112507291 B CN 112507291B
Authority
CN
China
Prior art keywords
software
android
information
unique
identifier
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
CN202011310864.5A
Other languages
English (en)
Other versions
CN112507291A (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.)
Reflections On Shudun Tianjin Technology Co ltd
Original Assignee
Reflections On Shudun Tianjin 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 Reflections On Shudun Tianjin Technology Co ltd filed Critical Reflections On Shudun Tianjin Technology Co ltd
Publication of CN112507291A publication Critical patent/CN112507291A/zh
Application granted granted Critical
Publication of CN112507291B publication Critical patent/CN112507291B/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1011Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供了一种Android设备的设备唯一标识的生成方法和装置、一种软件授权方法、一种电子设备、一种服务器、以及一种计算机可读存储介质。该设备唯一标识的生成方法包括:获取Android设备的Android ID和硬件信息;其中,硬件信息为在获得普通权限的情况下从android设备中获取的硬件的描述信息;计算Android ID和硬件信息的hash值,利用hash值生成Android设备的唯一标识。本申请的上述技术方案兼顾了唯一性和稳定性。

Description

Android设备的唯一标识的生成方法和装置
技术领域
本申请涉及计算机技术领域,特别涉及一种Android设备的唯一标识的生成方法和装置。
背景技术
Android(安卓)手机、设备应用广泛。设备唯一ID(简称设备ID)有十分广泛的用途。设备ID,简单来说是一串符号(或者数字),映射现实中硬件设备。标识唯一的设备可以作为唯一身份的基础,应用于金融行业、营销领域,广告营销可以根据唯一设备推送个人定制化广告,金融通过设备ID识别风险控制、行为监控的注意依据等。
Android系统基于Linux内核开发,但有严格的权限控制,目前市面上购买的Android手机不具有root权限,普通的应用无法获取到可靠、稳定的设备ID。
软件厂商通常的做法是在应用启动时获取应用权限后收集手机的IMEI或网卡MAC地址作为设备ID,但上述方案存在以下缺陷:
1.收集手机的IMEI作为设备ID的方案中,由于Android系统不断的升级,对应用程序的权限限制更为严格,申请权限变得更加复杂。虽然IMEI能够唯一标识设备,唯一性、稳定性都很好,但是随着Android系统的安全性升级,其获取过程变得复杂。
2.首先,收集手机的网卡MAC地址作为设备ID的方案中,由于部分新的手机厂商深度定制Android操作系统(例如X米的MIUI系统),手机的MAC地址隔一段时间会随机变化。这是因为,对于手机而言,其操作系统在硬件系统之上,app在应用层,应用层处于操作系统上。因此,当有的操作系统进行深层定制的时候,其虽然从硬件系统中获取了MAC地址,但是其反馈给应用层的app的MAC地址是经过修改的,并不是硬件系统真正的MAC地址。也就是说,对于某些手机来说,应用层的app获取到的MAC地址会变化,稳定性较差。其次,随着Android系统的升级,MAC地址的获取过程也变得更加复杂。
鉴于上述原因,目前大多数软件厂商都无法方便地获取到准确、可靠的设备ID。
发明内容
针对相关技术中存在的问题,本发明的目的在于提供一种Android设备的唯一标识的生成方法和装置,兼顾了唯一性和适用性,同时稳定性也比较好。
根据本发明的一个方面,提供了一种Android设备的设备唯一标识的生成方法,包括:获取Android设备的Android ID和硬件信息,其中,硬件信息为在获得普通权限的情况下从android设备中获取的硬件的描述信息;计算Android ID和硬件信息的hash值;利用hash值生成Android设备的设备唯一标识。
根据本发明的实施例,利用hash值生成Android设备的设备唯一标识的步骤,包括:将hash值作为设备唯一标识;或,使用固定密钥对hash值加密,得到设备唯一标识。
根据本发明的实施例,生成方法还包括:分多次获取固定密钥的部分信息;将多次获取的固定密钥的部分信息组合,得到固定密钥。
根据本发明的实施例,计算hash值所使用的算法包括MD5算法;和/或,生成设备唯一标识所使用的算法包括SHA256。
根据本发明的实施例,硬件信息包括:CPU厂商、CPU型号、设备制造商、内存信息、存储容量信息、设备宽度、设备高度、设备品牌、主板名中的一种或多种。
根据本发明的实施例,获取硬件信息包括:通过C/C++语言调用Android系统接口获取硬件信息。
根据本发明的另一个方面,提供了一种软件授权方法,应用于Android设备,该软件授权方法包括:如果检测到Android设备上的第一软件启动,则基于Android设备的设备唯一标识,检查第一软件的授权信息是否有效;其中,设备唯一标识由Android设备计算Android ID和硬件信息的hash值,并利用hash值而生成;硬件信息为在不申请危险权限的情况下从android设备中获取的硬件的描述信息;第一软件的授权信息与设备唯一标识关联;如果第一软件的授权信息有效,则允许正常使用第一软件。
根据本发明的实施例,方法还包括:如果检测到第一软件的授权激活信息,则向服务器发送第一请求;其中,授权激活信息用于表示第一软件的软件开发者允许Android设备的用户使用第一软件;接收服务器发送的第一应答;其中,第一应答中携带为Android设备上的第一软件颁发的授权信息。
根据本发明的实施例,第一请求中携带设备唯一标识;第一应答中携带的第一软件的授权信息为利用设备唯一标识加密后的密文;在接收服务器发送的第一应答的步骤之后,还包括:利用设备唯一标识解密密文,得到第一软件的授权信息。
根据本发明的又一个方面,提供了一种软件授权方法,应用于服务器,方法包括:接收来自Android设备的第一请求,第一请求中携带Android设备的设备唯一标识;基于设备唯一标识,为Android设备上的第一软件生成授权信息;向Android设备发送第一应答,其中,第一应答中携带授权信息。
根据本发明的实施例,方法还包括:利用设备唯一标识对授权信息加密,得到密文;第一应答中携带密文。
根据本发明的又一个方面,提供了一种Android设备的唯一标识的生成装置,包括:获取模块,用于获取Android设备的Android ID和硬件信息,其中,硬件信息为在获得普通权限的情况下从android设备中获取的硬件的描述信息;计算模块,用于计算Android ID和硬件信息的hash值;生成模块,利用hash值生成Android设备的设备唯一标识。
根据本发明的又一个方面,提供了一种电子设备,电子设备被配置为Android系统,该电子设备包括:处理器,处理器用于:启动电子设备的第一软件,如果检测到电子设备上的第一软件启动,则基于电子设备的设备唯一标识,检查第一软件的授权信息是否有效,以及,如果第一软件的授权信息有效,则正常运行第一软件;其中,设备唯一标识由电子设备计算Android ID和硬件信息的hash值,并利用hash值而生成;硬件信息为在不申请危险权限的情况下从电子设备中获取的硬件的描述信息;第一软件的授权信息与设备唯一标识关联。
根据本发明的又一个方面,提供了一种服务器,包括:处理器,处理器用于:接收来自Android设备的第一请求,第一请求中携带Android设备的设备唯一标识;基于设备唯一标识,为Android设备上的第一软件生成授权信息;向Android设备发送第一应答,其中,第一应答中携带授权信息。
根据本发明的又一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有程序,程序被执行以实现上述的Android设备的唯一标识的生成方法或上述的软件授权方法。
本发明的有益技术效果在于:
1.不需要申请特殊权限
2.稳定可靠,稳定性、唯一性(有限范围内的准确)均较好。
3、系统兼容性好,支持Android 4.3~10所有版本的操作系统。
4、适应性强,支持Android设备(例如前述的Android开发板,其他Android系统的终端形式)和Android手机。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明一个实施例的Android设备的唯一标识的生成方法的流程图。
图2是根据本发明一个实施例的Android设备唯一标识的应用流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种Android设备的唯一标识的生成方法,包括:
步骤S11,获取Android设备的Android ID和硬件信息。
步骤S12,计算Android ID和硬件信息的hash值。
步骤S13,利用hash值生成Android设备的设备唯一标识。
通过上述hash计算,可以将前述多种信息(Android ID和硬件信息)映射成一个固定长度的字符串。Hash计算可以采用现有技术中的hash算法,例如MD5、SHA1、SHA512等。
其中,Android ID是一种操作系统信息。Android ID是Android系统为每一台设备(例如手机)在启动时生成的唯一ID,设备重启不会变化,只有在系统刷机或者恢复出厂设置时才会发生变化。但在日常生活应用里刷机、恢复出厂设置的行为对普通用户而言一般是不太常见的。因此,采用Android ID可以在一定程度上保证计算出来的设备唯一标识的稳定性。
其中,硬件信息为在获得普通权限的情况下从android设备中获取的硬件的描述信息。Android系统的权限可以包括普通权限(Normal Permissions)和危险权限(Dangerous Permissions)。普通权限一般不涉及用户隐私,或者对用户隐私或其他应用的操作带来的风险很小,不需要用户进行授权,比如访问网络、手机震动等。如果应用软件在清单中声明需要普通权限,系统会在安装时自动向应用软件授予该权限,系统不会提示用户授予普通权限。危险权限一般涉及到用户隐私,或者可能对用户存储的数据或其他应用的操作产生影响,需要用户进行授权,比如操作SD卡的写入、相机、录音等。如果应用软件声明其需要危险权限,必须由用户向应用软件明确授予该权限。在用户批准该权限之前,应用软件无法提供依赖于该权限的功能。本申请实施例中的硬件信息,指的是不需要用户批准就可以从android设备中获取的用于描述android设备硬件的信息。
可选地,硬件信息包括CPU厂商、CPU型号、设备制造商、内存信息、存储容量信息、设备宽度、设备高度、设备品牌和主板名中的一种或多种。硬件信息不太容易更换,因为更换成本高。因此,采用硬件信息可以保障计算出来的设备唯一标识的稳定性。
Android ID在一定程度上具有唯一性,引入了一个或者多个固定的硬件信息之后,计算出来的设备唯一标识的唯一性会更高(相同的概率更低)。理论上来说,引入的硬件信息的个数越多,计算出相同的唯一标识的概率就越低。
可选地,在选取硬件信息时,优先选用CPU厂商、CPU型号和设备制造商中的一个或多个。即,选用CPU厂商、CPU型号和设备制造商的优先级高于选用内存信息、存储容量信息等信息。这是因为,对于一台Android设备而言,CPU等被替换的成本更高,在实际使用中被替换的机会相对较小,而内存条等被替换的机会更大。因此,优先采用CPU厂商等被替换机率较小的硬件的硬件信息,可以进一步提高生成的设备唯一标识的稳定性。
示例性地,硬件信息包括CPU厂商、CPU型号和设备制造商。Android ID同时与CPU厂商、CPU型号、设备制造商信息一同参与运算,计算生成的设备唯一标识兼顾了唯一性和稳定性。
本发明实施例中采用的操作系统信息和硬件信息,可以仅采用不需要申请特殊权限就可以获取的信息。因此,本发明实施例的方法实施起来十分方便,并且兼顾了唯一性和稳定性,准确、可靠。
本申请实施例中的方法应用范围广,适用性好。现有技术中的以IMEI作为设备唯一ID的方式只适用于手机,适用性较窄。其他Android设备可能没有IMEI,例如,Android的开发板没有手机卡槽,就不具备IMEI信息。而本申请实施例中的方法不但可以应用于手机,还可以应用在几乎所有的安装有安卓系统的终端上,例如Android开发板、计算机、平板电脑、智能穿戴设备、人脸闸机、自动售货机、抓娃娃机等,适用性更好。
此外,本申请实施例中的方法系统兼容性好,支持Android 4.3~10所有版本的操作系统。
可选地,除了利用Android ID和硬件信息之外,也可以再加入一些虽然需要权限,但是相对比较容易获取的信息,将三类信息一起计算得到hash值。通过采用这样的方法,可以进一步提高生成的设备唯一标识的唯一性和稳定性,并且获取过程也不是太复杂,对便利性的影响也较小。
根据本发明的一个实施例,可以通过使用C/C++语言调用Android系统接口获取硬件信息。本发明的其中一个实施例使用C/C++语言调用Android系统接口获取硬件信息,相比通过Java调用系统接口更隐蔽,硬件信息获取内容和过程难以逆向,具有一定程度的安全性。
根据本发明的一个实施例,上述步骤S13可以包括:
将所述hash值作为设备唯一标识;或,使用固定密钥对hash值加密,得到设备唯一标识。将固定密钥加密后得到的密文作为设备唯一标识,更有利于防止设备唯一标识被伪造,有利于提高设备唯一标识在使用过程中的安全性。
其中,在使用固定密钥对hash值加密,得到设备唯一标识的方案中,可以分多次获取固定密钥的部分信息,然后将多次获取的固定密钥的部分信息组合,以得到固定密钥。采用上述方式,有利于从代码层面保证固定密钥的安全性,进一步提高设备唯一标识在使用过程中的安全性。
可选地,上述步骤S12中,计算hash值所使用的算法包括MD5算法。使用MD5算法计算Android ID和所述硬件信息的信息摘要,可以保证从不同的设备获取到的信息处理后的数据长度相同,更便于后续步骤加密处理。可选地,生成设备唯一标识所使用的算法包括SHA256。
以下提供了Android设备的设备唯一标识的生成方法的一个实施例。下面将依据该实施例对上述步骤进行说明。在该实施例中,使用固定密钥对hash值进行加密,以得到设备唯一标识。该实施例共包含6个步骤,分别为:
1.获取Android设备的Android ID。
2.初始化固定密钥(部分1),初始化部分密钥。
3.获取Android设备的硬件信息:CPU制造商、型号和CPU序列号。
4.初始化固定密钥(部分2),密钥初始化完成。
5.使用MD5算法计算Android ID和硬件信息的hash值。
6.使用上述步骤2、4初始化的固定密钥对上述hash值进行SHA256加密,将加密结果的密文作为当前设备的设备唯一标识。
其中,在该实施例中,分两次获取固定密钥的部分信息,分别在2、4步骤初始化固定密钥,能够从代码层面保证密钥的安全性。一次性获取特定的密钥长度的密钥,很容易被黑客分析发现,而经过多次拷贝,每次少量,获取密钥的操作与基本的操作具有类似特征,能够加强密钥安全性。
其中,在步骤5中,计算了Android ID和硬件信息的hash值,即进行信息摘要,能够保证不同的设备获取到的信息在处理后数据长度相同,便于下后续步骤加密处理。
经过上述步骤,设备唯一标识经过摘要、加密处理,保留唯一性的特征,同时无法通过设备唯一标识逆向推算出获取到的硬件内容,故而可以有效防止黑客通过逆向的方法获得密钥和设备唯一标识的计算过程、伪造假唯一标识数据,因而具有较强的安全性。
可选地,在实际应用场景中,上述Android设备的设备唯一标识的生成方法的执行主体可以是用户终端中的app。app是由软件开发商开发的,软件开发商可以采购软件授权管理组件,用来对用户终端上的app做授权管理。
下面将介绍Android设备的设备唯一标识在软件授权管控领域应用的实施例。如图2所示,流程a中,服务提供商可以向软件开发商提供授权管控软件开发套件(SDK),例如Virbox LM提供的SDK,由软件开发商采购并集成到自身的软件产品中。可选地,服务提供商也可以为软件开发商提供实现上述设备唯一标识的生成方法的组件,由软件开发商集成到自身的软件产品中。流程b中,软件开发商可以发布该软件,在用户付费后将该软件打包卖给软件用户。可选地,在软件开发商发布软件之后,用户也可以先下载软件,并在用户付费后,软件开发商可以通过软件授权管理来将该软件的使用权卖给软件用户。可选地,软件开发商可以通过提供的授权管控软件开发套件(SDK),在软件用户的运行环境下写入限制软件使用时长或功能的数据文件,使得用户只能在购买权益的范围内使用软件,软件到期后将无法使用。
根据本发明的实施例,提供了一种应用于Android设备的软件授权方法。该方法包括:
步骤S21:如果检测到Android设备上的第一软件启动,则基于Android设备的设备唯一标识,检查第一软件的授权信息是否有效。
其中,设备唯一标识由Android设备计算Android ID和硬件信息的hash值,并利用该hash值而生成;硬件信息为在不申请危险权限的情况下从android设备中获取的硬件的描述信息;第一软件的授权信息与设备唯一标识关联。
上述的第一软件可以是前述软件开发商开发的任意一款需要授权才能够正常使用的软件。第一软件的授权信息,可以理解为一种数据凭证,用于规定和限制软件用户使用软件(或其源代码)的权利。这里的软件用户,也可以理解为Android设备的用户。通过Android设备的设备唯一标识,可以追踪Android设备的用户的行为与偏好,也可以通过对Android设备的授权,来表示对软件用户的授权。因此,在本申请的实施例中,可以将第一软件的授权信息与Android设备的设备唯一标识绑定起来。服务器通过Android设备的设备唯一标识,来保证生成和发送给Android设备的第一软件的授权信息,是针对不同设备来分别生成和发送的。这样,软件开发商就可以实现针对每个用户来进行分别做授权管理。
步骤S22:如果第一软件的授权信息有效,则允许正常使用第一软件。
根据本发明的一个实施例,如果第一软件的授权信息无效,该软件授权方法还包括:
步骤S23:检测第一软件的授权激活信息,如果检测到第一软件的授权激活信息,则向服务器发送第一请求,其中,授权激活信息用于表示第一软件的软件开发者允许Android设备的用户使用第一软件。
步骤S24:接收服务器发送的第一应答,其中,第一应答中携带为Android设备上的第一软件颁发的授权信息。
步骤S25:存储获取的授权信息,授权激活成功以正常使用第一软件。
根据本发明的一个实施例,在上述步骤S23中,向服务器发送的第一请求中携带设备唯一标识;在上述步骤S24中接收的第一应答中携带的第一软件的授权信息为利用设备唯一标识加密后的密文。在接收所述服务器发送的第一应答的之后,还包括:利用设备唯一标识解密该密文,以得到第一软件的授权信息。
根据本发明的实施例,还提供了一种应用于服务器的软件授权方法。该方法包括:
步骤S31:接收来自Android设备的第一请求,第一请求中携带Android设备的设备唯一标识。
步骤S32:基于设备唯一标识,为Android设备上的第一软件生成授权信息。
步骤S33:向Android设备发送第一应答,其中,第一应答中携带授权信息。
根据本发明的一个实施例,上述步骤S33还包括:利用设备唯一标识对授权信息进行加密,以得到密文。其中,第一应答中携带密文。
如图2所示,软件用户在下载软件后,对软件进行启动。该软件在启动后,可以获取Android设备的硬件信息,并生成设备唯一标识(DeviceID);以及使用设备唯一标识来解密该软件的授权文件,进而获得该软件的授权信息;之后如上述步骤S21所述,检查该软件的授权信息是否有效。
如果该授权信息有效,则进行流程c,也如步骤S22所述,软件用户可以正常使用该软件。
如果该授权信息无效,则进行流程d,软件用户可以向软件开发商付费,软件开发商收到软件用户付费后进行流程e,向软件用户下发通知。示例性地,该通知中可以包括激活码等。之后如上述步骤S23所述,该软件可以检测软件的授权激活信息,如果检测到软件的授权激活信息,则进行流程f,向服务器发送携带设备唯一标识的请求。服务器接收到请求后,如上述步骤S31、S32和S33所述,服务器基于设备唯一标识为Android设备上的软件生成授权信息,并且可以利用设备唯一标识对授权信息进行加密。在服务器将Android设备传递授权信息的时候,针对不同的Android设备,服务器利用每一台Android设备各自的设备唯一标识来对授权信息加密,有利于提高授权信息的安全性。之后进行流程g,向Android设备发送携带授权信息的应答。应理解,在检查到授权信息无效之后,Android设备也可以直接检测Android设备上是否存在授权激活信息。
软件接收到服务器发送的携带授权信息的应答后,如上述步骤S24、S25所述,存储获取的授权信息,则软件用户可以正常使用该软件。
此外,在软件授权管理的应用场景中,当出现刷机、恢复出厂设置等情况时,手机等终端中的软件原本就需要重新安装,重新进行授权。因此,在这种情况下,无论AndroidID是否发生了变化,都需要重新针对特定的设备唯一标识进行授权。因此在这种特定的应用场景中,采用本案的方法计算出来的设备唯一标识,稳定性不会受到影响,不影响软件开发商对于软件的授权管理。即,本申请实施例中的设备唯一标识的生成方法,尤其适合应用在软件授权管理的应用场景中。
根据本发明的实施例,还提供了一种电子设备,电子设备被配置为Android系统,包括第一处理器,第一处理器用于:启动电子设备的第一软件,如果检测到电子设备上的第一软件启动,则基于电子设备的设备唯一标识,检查第一软件的授权信息是否有效,如果第一软件的授权信息有效,则启动第一软件;其中,设备唯一标识由电子设备计算Android ID和硬件信息的hash值,并利用hash值而生成;硬件信息为在不申请危险权限的情况下从电子设备中获取的硬件的描述信息;第一软件的授权信息与设备唯一标识关联。
根据本发明的实施例,还提供了一种服务器,包括:第二处理器,第二处理器用于:接收来自Android设备的第一请求,第一请求中携带Android设备的设备唯一标识;基于设备唯一标识,为Android设备上的第一软件生成授权信息;向Android设备发送第一应答,其中,第一应答中携带授权信息。
应理解,上述第一处理器还可以用于实现前述任一种设备唯一标识的生成方法,或者前述任一种由Android设备实现的软件授权方法。上述第二处理器还可以用于实现前述由服务器实现的软件授权方法。
根据本发明的实施例,还提供了一种计算机可读存储介质,计算机可读存储介质存储有程序,程序被执行以实现上述实施例的Android设备的唯一标识的生成方法或上述实施例的软件授权方法。
上述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
上述计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
根据本发明的实施例,还提供了一种Android设备的设备唯一标识的生成装置,包括:获取模块,用于获取Android设备的Android ID和硬件信息,其中,硬件信息为在获得普通权限的情况下从android设备中获取的硬件的描述信息;计算模块,用于计算Android ID和硬件信息的hash值;生成模块:利用hash值生成Android设备的设备唯一标识。
根据本发明的一个实施例,生成模块用于将hash值作为设备唯一标识;或,使用固定密钥对hash值加密得到设备唯一标识。
根据本发明的一个实施例,该装置还包括:密钥初始化模块,用于分多次获取固定密钥的部分信息;将多次获取的固定密钥的部分信息组合,得到固定密钥。
根据本发明的一个实施例,计算模块中,计算hash值所使用的算法包括MD5算法;生成模块中,生成设备唯一标识所使用的算法包括SHA256。
根据本发明的一个实施例,获取模块中获取的硬件信息包括:CPU厂商、CPU型号、设备制造商、内存信息、存储容量信息、设备宽度、设备高度、设备品牌、主板名中的一种或多种。
根据本发明的一个实施例,获取模块中通过C/C++语言调用Android系统接口获取硬件信息。
如前所述,在实际应用场景中,前述设备唯一标识的生成方法的执行主体可以是用户终端中的app。在这种情况下,前述生成装置可以视为app中的一个组件。可选地,前述生成装置也可以是Android设备上独立于app的一个组件。
应理解,本申请实施例的生成装置所包括的各个单元或模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种Android设备的唯一标识的生成方法,其特征在于,包括:
在Android设备上的第一软件启动后,获取所述Android设备的Android ID和硬件信息,其中,所述硬件信息为在获得普通权限的情况下从android设备中获取的硬件的描述信息;
计算所述AndroidID和所述硬件信息的hash值;
利用所述hash值生成所述Android设备的设备唯一标识,包括:使用固定密钥对所述hash值加密,将加密结果作为所述设备唯一标识,其中,所述固定密钥的获取包括:分多次获取固定密钥的部分信息,将多次获取的固定密钥的部分信息组合,得到所述固定密钥;
所述设备唯一标识能够被服务器用于与所述第一软件的授权信息绑定,以及加密所述第一软件的授权信息;所述设备唯一标识还能够被所述Android设备用于解密来自所述服务器的、加密后的所述第一软件的授权信息。
2.根据权利要求1所述的Android设备的唯一标识的生成方法,其特征在于,计算所述hash值所使用的算法包括MD5算法;和/或,生成所述设备唯一标识所使用的算法包括SHA256。
3.根据权利要求1-2任一项所述的Android设备的唯一标识的生成方法,其特征在于,所述硬件信息包括:CPU厂商、CPU型号、设备制造商、内存信息、存储容量信息、设备宽度、设备高度、设备品牌、主板名中的一种或多种。
4.根据权利要求1-2任一项所述的Android设备的唯一标识的生成方法,其特征在于,获取所述硬件信息包括:
通过C/C++语言调用Android系统接口获取所述硬件信息。
5.一种软件授权方法,其特征在于,应用于Android设备,所述方法包括:
如果检测到所述Android设备上的第一软件启动,则基于所述Android设备的设备唯一标识,检查所述第一软件的授权信息是否有效;其中,所述设备唯一标识由所述Android设备计算AndroidID和硬件信息的hash值,并利用所述hash值而生成;所述硬件信息为在获得普通权限的情况下从android设备中获取的硬件的描述信息;所述第一软件的授权信息与所述设备唯一标识关联;利用所述hash值生成所述Android设备的设备唯一标识,包括:使用固定密钥对所述hash值加密,将加密结果作为所述设备唯一标识,其中,所述固定密钥的获取包括:分多次获取固定密钥的部分信息,将多次获取的固定密钥的部分信息组合,得到所述固定密钥;
如果所述第一软件的授权信息有效,则允许正常使用所述第一软件;
如果所述第一软件的授权信息无效,则在检测到所述第一软件的授权激活信息的情况下向服务器发送第一请求;其中,所述授权激活信息用于表示所述第一软件的软件开发者允许所述Android设备的用户使用所述第一软件,所述第一请求中携带所述设备唯一标识;
接收所述服务器发送的第一应答,所述第一应答中携带有所述服务器为所述Android设备上的第一软件颁发的、加密后的第一软件的授权信息,所述第一软件的授权信息与所述设备唯一标识被绑定;
利用所述设备唯一标识解密所述加密后的第一软件的授权信息,存储所述第一软件的授权信息。
6.一种软件授权方法,其特征在于,应用于服务器,所述方法包括:
接收来自Android设备的第一请求,所述第一请求中携带所述Android设备的设备唯一标识;
基于所述设备唯一标识,为所述Android设备上的第一软件生成授权信息,绑定所述设备唯一标识和所述第一软件的授权信息;
向所述Android设备发送第一应答,其中,所述第一应答中携带有利用所述设备唯一标识加密后的所述第一软件的授权信息;
其中,所述设备唯一标识由所述Android设备计算Android ID和硬件信息的hash值,并利用所述hash值而生成,包括:使用固定密钥对所述hash值加密,将加密结果作为所述设备唯一标识,其中,所述固定密钥的获取包括:分多次获取固定密钥的部分信息,将多次获取的固定密钥的部分信息组合,得到所述固定密钥,其中,所述硬件信息为在获得普通权限的情况下从android设备中获取的硬件的描述信息。
7.一种Android设备的唯一标识的生成装置,其特征在于,包括:
获取模块,用于在Android设备上的第一软件启动后获取所述Android设备的AndroidID和硬件信息,其中,所述硬件信息为在获得普通权限的情况下从android设备中获取的硬件的描述信息;
计算模块,用于计算所述AndroidID和所述硬件信息的hash值;
生成模块,利用所述hash值生成所述Android设备的设备唯一标识,其中包括:使用固定密钥对所述hash值加密,将加密结果作为所述设备唯一标识,其中,所述固定密钥的获取包括:分多次获取固定密钥的部分信息,将多次获取的固定密钥的部分信息组合,得到所述固定密钥;
其中,所述设备唯一标识能够被服务器用于与所述第一软件的授权信息绑定,以及加密所述第一软件的授权信息;所述设备唯一标识还能够被所述Android设备用于解密来自所述服务器的、加密后的所述第一软件的授权信息。
8.一种电子设备,所述电子设备被配置为Android系统,其特征在于,包括:
处理器,所述处理器用于:启动所述电子设备的第一软件,如果检测到所述电子设备上的第一软件启动,则基于所述电子设备的设备唯一标识,检查所述第一软件的授权信息是否有效,以及,如果所述第一软件的授权信息有效,则正常运行所述第一软件;其中,所述设备唯一标识由所述电子设备计算AndroidID和硬件信息的hash值,并利用所述hash值而生成;所述硬件信息为在获得普通权限的情况下从电子设备中获取的硬件的描述信息;所述第一软件的授权信息与所述设备唯一标识关联,
其中,利用所述hash值生成Android设备的设备唯一标识,包括:使用固定密钥对所述hash值加密,将加密结果作为所述设备唯一标识,其中,所述固定密钥的获取包括:分多次获取固定密钥的部分信息,将多次获取的固定密钥的部分信息组合,得到所述固定密钥,
所述处理器还用于:在所述第一软件的授权信息无效,并且检测到所述第一软件的授权激活信息的情况下向服务器发送第一请求;接收所述服务器发送的第一应答;以及,利用所述设备唯一标识解密所述加密后的第一软件的授权信息,存储所述第一软件的授权信息;其中,所述授权激活信息用于表示所述第一软件的软件开发者允许所述Android设备的用户使用所述第一软件,所述第一请求中携带所述设备唯一标识;所述第一应答中携带有所述服务器为所述Android设备上的第一软件颁发的、加密后的第一软件的授权信息,所述第一软件的授权信息与所述设备唯一标识被绑定。
9.一种服务器,其特征在于,包括:
处理器,所述处理器用于:
接收来自Android设备的第一请求,所述第一请求中携带所述Android设备的设备唯一标识;
基于所述设备唯一标识,为所述Android设备上的第一软件生成授权信息,绑定所述设备唯一标识和所述第一软件的授权信息;
向所述Android设备发送第一应答,其中,所述第一应答中携带有利用所述设备唯一标识加密后的所述第一软件的授权信息,
其中,所述设备唯一标识由所述Android设备计算Android ID和硬件信息的hash值,并利用所述hash值而生成,包括:使用固定密钥对所述hash值加密,将加密结果作为所述设备唯一标识,其中,所述固定密钥的获取包括:分多次获取固定密钥的部分信息,将多次获取的固定密钥的部分信息组合,得到所述固定密钥,其中,所述硬件信息为在获得普通权限的情况下从android设备中获取的硬件的描述信息。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序,所述程序被执行以实现权利要求1-4任一项所述的Android设备的唯一标识的生成方法或权利要求5-6任一项所述的软件授权方法。
CN202011310864.5A 2020-11-18 2020-11-20 Android设备的唯一标识的生成方法和装置 Active CN112507291B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011299026 2020-11-18
CN2020112990262 2020-11-18

Publications (2)

Publication Number Publication Date
CN112507291A CN112507291A (zh) 2021-03-16
CN112507291B true CN112507291B (zh) 2022-09-13

Family

ID=74960026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011310864.5A Active CN112507291B (zh) 2020-11-18 2020-11-20 Android设备的唯一标识的生成方法和装置

Country Status (1)

Country Link
CN (1) CN112507291B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938878A (zh) * 2021-10-15 2022-01-14 维沃移动通信有限公司 一种设备标识符防伪造方法、装置和电子设备
CN114125561B (zh) * 2021-11-12 2022-12-13 四川长虹电器股份有限公司 一种Android智能电视设备标识符处理方法及系统
CN114780152B (zh) * 2022-03-22 2024-03-15 西安广和通无线软件有限公司 一种计算设备启动方法及装置
CN114726550A (zh) * 2022-05-25 2022-07-08 北京奇虎科技有限公司 识别码生成方法、装置、设备及存储介质
CN115344848B (zh) * 2022-07-20 2023-07-28 北京数牍科技有限公司 标识获取方法、装置、设备及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024734A (zh) * 2012-12-31 2013-04-03 广东欧珀移动通信有限公司 防止Apk被非授权手机安装的加密、解密方法及装置
CN106937275A (zh) * 2017-02-13 2017-07-07 深圳盈达信息科技有限公司 一种在安卓系统下保存系统唯一标识及硬件id的设备
CN107360265A (zh) * 2017-05-26 2017-11-17 武汉斗鱼网络科技有限公司 一种设备唯一标识码获取方法、装置及移动终端
CN110955869A (zh) * 2018-09-26 2020-04-03 南昌欧菲生物识别技术有限公司 终端软件权限管理方法、装置、终端和存储介质
CN111353073A (zh) * 2018-12-21 2020-06-30 阿里巴巴集团控股有限公司 终端设备标识信息处理方法、装置及电子设备
CN111931254A (zh) * 2020-09-26 2020-11-13 绿漫科技有限公司 一种Android设备唯一标识的混合标识方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8763159B1 (en) * 2012-12-05 2014-06-24 Parallels IP Holdings GmbH System and method for application license management in virtual environments
CN109086578A (zh) * 2017-06-14 2018-12-25 中兴通讯股份有限公司 一种软件授权使用的方法、设备及存储介质
CN108830113A (zh) * 2018-06-14 2018-11-16 山东浪潮通软信息科技有限公司 一种Android设备唯一标识的获取方法
CN110674518A (zh) * 2019-09-26 2020-01-10 海南新软软件有限公司 一种设备标识信息生成方法、装置及系统
CN111159657A (zh) * 2019-11-22 2020-05-15 深圳智链物联科技有限公司 一种应用程序鉴权方法及系统
CN111404682B (zh) * 2020-03-17 2023-04-25 江苏恒宝智能系统技术有限公司 一种Android环境密钥分段处理方法及装置
CN111601304A (zh) * 2020-04-29 2020-08-28 上海伊邦医药信息科技有限公司 一种用于控制安全风险移动端设备唯一识别码的生成方法
CN111708991A (zh) * 2020-06-17 2020-09-25 腾讯科技(深圳)有限公司 服务的授权方法、装置、计算机设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024734A (zh) * 2012-12-31 2013-04-03 广东欧珀移动通信有限公司 防止Apk被非授权手机安装的加密、解密方法及装置
CN106937275A (zh) * 2017-02-13 2017-07-07 深圳盈达信息科技有限公司 一种在安卓系统下保存系统唯一标识及硬件id的设备
CN107360265A (zh) * 2017-05-26 2017-11-17 武汉斗鱼网络科技有限公司 一种设备唯一标识码获取方法、装置及移动终端
CN110955869A (zh) * 2018-09-26 2020-04-03 南昌欧菲生物识别技术有限公司 终端软件权限管理方法、装置、终端和存储介质
CN111353073A (zh) * 2018-12-21 2020-06-30 阿里巴巴集团控股有限公司 终端设备标识信息处理方法、装置及电子设备
CN111931254A (zh) * 2020-09-26 2020-11-13 绿漫科技有限公司 一种Android设备唯一标识的混合标识方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Android应用程序中第三方库访问权限控制方法的研究;胡静;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑(月刊)》;20181015(第10期);I138-24 *
Protecting and identifiying smartphone apps using ICmetrics;Mustafa Haciosman等;《2014 Fifth International Conference on Emerging Security Technologies》;20141215;94-98 *

Also Published As

Publication number Publication date
CN112507291A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN112507291B (zh) Android设备的唯一标识的生成方法和装置
CN111539813B (zh) 业务行为的回溯处理方法、装置、设备及系统
US20200184042A1 (en) Modular software protection
US9652610B1 (en) Hierarchical data security measures for a mobile device
KR101861401B1 (ko) 장치 기능과 애플리케이션의 결합
US10032037B1 (en) Establishing application trust levels using taint propagation as a service
CN103051451A (zh) 安全托管执行环境的加密认证
US10733594B1 (en) Data security measures for mobile devices
CA3127882C (en) Short message sending method, device, and computer system
CN107066346B (zh) 一种数据备份方法、数据恢复方法及装置
CN112612327A (zh) 扩展坞的接入控制方法、装置和系统、电子设备
CN108564363B (zh) 一种交易处理方法、服务器、客户端及系统
CN110445768B (zh) 一种登录方法、装置及电子设备
CN112287376A (zh) 一种隐私数据的处理方法及装置
US10025575B2 (en) Method for installing security-relevant applications in a security element of a terminal
CN113541966A (zh) 权限管理方法、装置、电子设备及存储介质
CN111737721A (zh) 终端设备id的生成方法及装置、电子设备
CN109922056B (zh) 数据安全处理方法及其终端、服务器
CN111182010B (zh) 一种本地服务提供方法及装置
CN113868691B (zh) 一种基于云原生的区块链的授权运行方法及装置
US20220164198A1 (en) Information processing apparatus and bios management method
CN108259490B (zh) 一种客户端校验方法及装置
CN109167785B (zh) 一种虚拟可信根的调用方法和业务服务器
CN106851612B (zh) 一种安卓设备的设备追踪方法和系统
CN112787994B (zh) 电子设备的设备id的处理方法、装置、设备及存储介质

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
TA01 Transfer of patent application right

Effective date of registration: 20220815

Address after: Room 602-43, Building 29, No. 89, Heyuan Road, Beijing-Tianjin Science and Technology Valley Industrial Park, Wuqing District, Tianjin 301700

Applicant after: Reflections on Shudun (Tianjin) Technology Co.,Ltd.

Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Applicant before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant