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

设备唯一标识符的生成方法和系统与流程

2022-02-23 00:26:12 来源:中国专利 TAG:


1.本发明涉及一种设备标识符的生成技术,具体涉及通过软硬件信息来生成移动设备唯一标识符的方法和系统,应用于移动端开发、移动支付风控、用户数据分析等领域。


背景技术:

2.随着国家、个人对信息安全的重视,之前行业通用的唯一标识移动设备的标识符,如imei、mac地址、idfa等信息,被禁止读取;而如果使用第三方提供的uuid等信息,也可能存在被替换或替代、app store拒绝上架的风险,出现无法唯一标识用户设备,进而无法实时监控交易行为、无法精准识别欺诈等行为,造成资产损失、政策监管等方面的风险。
3.有鉴于此,为了保障平台用户的资金及交易安全、符合政策监控监管规则,业内需要在符合信息安全相关法规的前提下,自主研发出一套能够使公司各个app共享的设备唯一标识符,来满足移动端开发、移动交易风控、用户数据分析等领域的相关需求。


技术实现要素:

4.以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
5.本发明的目的在于解决上述问题,提供了一种设备唯一标识符的生成方法和系统,通过软硬件信息生成移动设备唯一标识符,通过此移动设备唯一标识符实现平台内各个app之间共享数据,帮助移动端开发来辨识移动设备、且在上传后台后能够用于保障支付交易方面的风控、关键衡量指标的分析,包括转化率(cvr)、每用户平均收入(arpu)等。
6.本发明的技术方案为:本发明揭示了一种设备唯一标识符的生成方法,方法包括:
7.步骤1:通过跨应用缓存获取设备标识符,如果设备标识符获取成功且其符合以预设字符为起始字段的规则,则直接跳转至步骤4;
8.步骤2:基于获取到的设备标识符,生成用作设备唯一标识符的字符串;
9.步骤3:通过跨应用缓存,缓存步骤2生成的用作设备唯一标识符的字符串;
10.步骤4:输出步骤2中生成的或步骤1中获取的字符串,作为设备唯一标识符供给业务方使用。
11.根据本发明的设备唯一标识符的生成方法的一实施例,跨应用缓存是通过ios系统的seckeychain接口将包括设备标识符在内的数据缓存到公共钥匙串中。
12.根据本发明的设备唯一标识符的生成方法的一实施例,步骤2进一步包括:
13.通过ios系统接口,基于步骤1获取到的设备标识符生成通用唯一识别码字符串;
14.为通用唯一识别码字符串提供预设字符前缀;
15.通过ios系统接口,获取设备代号并追加至通用唯一识别码字符串的最后方,形成以预设字符前缀为起始、通用唯一识别码居中、设备代号截止的三段式且无字符串分隔的
长串,作为设备唯一标识符的字符串。
16.本发明还揭示了一种设备唯一标识符的生成方法,方法包括:
17.步骤1:读取外部存储指定文件中的字符串内容,判断读取到的字符串是否满足条件,若满足则将读取到的字符串同步到共享选项存储方式下的指定文件和指定关键字中,之后提前返回读取到的字符串,整个流程结束;
18.步骤2:如果步骤1读取的字符串不满足条件,则继续读取共享选项存储方式下的指定文件和指定关键字对应的键值字符串,如果步骤2中读取到的键值字符串符合条件,则再将步骤2中读取到的键值字符串同步写入到外部存储指定文件中,在写入到外部存储指定文件之前先检查是否有对应的对外部存储的访问权限,若无权限则不做写入操作,提前返回在本步骤2中所读取的键值字符串;
19.步骤3:如果步骤2中读取的键值字符串不满足条件,则创建一个以预设字符开头的字符串,基于从安卓系统中获取到的设备标志,进行多个字段的拼接和加密处理后形成最终的设备唯一标识符的格式,将最终格式的值同步到共享选项存储方式下的指定文件目录和指定关键字中、以及外部存储指定文件中。
20.根据本发明的设备唯一标识符的生成方法的一实施例,在外部存储中预先创建指定文件路径,指定文件路径中包括自定义的关键字的字段,关键字的键值以字符串的形式输出,步骤1中的条件是判断字符串是否为空并且符合预先制定的开头格式。
21.根据本发明的设备唯一标识符的生成方法的一实施例,步骤3中的多个字段的拼接和加密处理进一步包括:
22.先通过包括时间戳、型号、设备硬件名称、或者设备硬件识别码的组合在内的字段和设备标志做首次拼接,再通过md5加密首次拼接后的内容,生成加密字符串之后再与之前所创建的以预设字符开头的字符串进行再次拼接,形成最终的设备唯一标识符的格式。
23.本发明还揭示了一种设备唯一标识符的生成系统,系统包括:
24.设备标识符获取模块,配置为通过跨应用缓存获取设备标识符,如果设备标识符获取成功且其符合以预设字符为起始字段的规则,则直接跳转至设备唯一标识符输出模块;
25.设备唯一标识符生成模块,配置为基于设备标识符获取模块获取到的设备标识符,生成用作设备唯一标识符的字符串;
26.设备唯一标识符缓存模块,配置为通过跨应用缓存缓存设备唯一标识符生成模块所生成的用作设备唯一标识符的字符串;
27.设备唯一标识符输出模块,配置为输出设备唯一标识符生成模块所生成的或设备标识符获取模块所获取的字符串,作为设备唯一标识符供给业务方使用。
28.根据本发明的设备唯一标识符的生成系统的一实施例,跨应用缓存是通过ios系统的seckeychain接口将包括设备标识符在内的数据缓存到公共钥匙串中。
29.根据本发明的设备唯一标识符的生成系统的一实施例,设备唯一标识符生成模块进一步配置为执行以下处理:
30.通过ios系统接口,基于设备标识符获取模块所获取到的设备标识符生成通用唯一识别码字符串;
31.为通用唯一识别码字符串提供预设字符前缀;
32.通过ios系统接口,获取设备代号并追加至通用唯一识别码字符串的最后方,形成以预设字符前缀为起始、通用唯一识别码居中、设备代号截止的三段式且无字符串分隔的长串,作为设备唯一标识符的字符串。
33.本发明还揭示了一种设备唯一标识符的生成系统,系统包括:
34.外部存储指定文件处理模块,配置为读取外部存储指定文件中的字符串内容,判断读取到的字符串是否满足条件,若满足则将读取到的字符串同步到共享选项存储方式下的指定文件和指定关键字中,之后提前返回读取到的字符串,整个流程结束;
35.共享选项存储处理模块,配置为如果外部存储指定文件处理模块所读取的字符串不满足条件,则继续读取共享选项存储方式下的指定文件和指定关键字对应的键值字符串,如果共享选项存储处理模块中读取到的键值字符串符合条件,则再将共享选项存储处理模块中读取到的键值字符串同步写入到外部存储指定文件中,在写入到外部存储指定文件之前先检查是否有对应的对外部存储的访问权限,若无权限则不做写入操作,提前返回在共享选项存储处理模块中所读取的键值字符串;
36.设备唯一标识符创建模块,配置为如果共享选项存储处理模块中读取的键值字符串不满足条件,则创建一个以预设字符开头的字符串,基于从安卓系统中获取到的设备标志,进行多个字段的拼接和加密处理后形成最终的设备唯一标识符的格式,将最终格式的值同步到共享选项存储方式下的指定文件目录和指定关键字中、以及外部存储指定文件中。
37.根据本发明的设备唯一标识符的生成系统的一实施例,外部存储指定文件处理模块中,在外部存储中预先创建指定文件路径,指定文件路径中包括自定义的关键字的字段,关键字的键值以字符串的形式输出,外部存储指定文件处理模块中的条件是判断字符串是否为空并且符合预先制定的开头格式。
38.根据本发明的设备唯一标识符的生成系统的一实施例,设备唯一标识符创建模块中的多个字段的拼接和加密处理进一步包括:
39.先通过包括时间戳、型号、设备硬件名称、或者设备硬件识别码的组合在内的字段和设备标志做首次拼接,再通过md5加密首次拼接后的内容,生成加密字符串之后再与之前所创建的以预设字符开头的字符串进行再次拼接,形成最终的设备唯一标识符的格式。
40.本发明对比现有技术有如下的有益效果:本发明的方法中,一方面通过跨应用缓存技术实现平台内部各个app之间共享移动设备唯一标识符device id,另一方面在不同操作系统中以各自的预设字符为前缀、通过生成的uuid(通用唯一识别码,universally unique identifier)字符串为中段、设备代号为末尾的三段式字符结构,以使其与其他平台缓存的数据相互隔离的方式,实现自身平台数据独有的效果。
附图说明
41.在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
42.图1示出了本发明的设备唯一标识符的生成方法的第一实施例的流程图。
43.图2示出了本发明的设备唯一标识符的生成方法的第二实施例的流程图。
44.图3示出了本发明的设备唯一标识符的生成系统的第一实施例的结构图。
45.图4示出了本发明的设备唯一标识符的生成系统的第二实施例的结构图。
具体实施方式
46.以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
47.图1示出了本发明的设备唯一标识符的生成方法的第一实施例的流程。在本实施例中,是以本发明在ios操作系统中的实现为例进行说明。
48.步骤1:通过跨应用缓存技术获取设备标识符,如果设备标识符获取成功且其符合以

i.’字符串为起始字段的规则,则直接跳转至步骤4。
49.跨应用缓存技术是通过系统的seckeychain接口将包括设备标识符在内的数据缓存到公共钥匙串中。
50.如果获取到的字符串符合以

i.’字符串为起始字段的规则,说明此步骤中读取到的就是设备唯一标识符device id。
51.在本实施例中,以

i.’字符串为起始字段仅为示例,在其他的实施例中,也可以用其他预设的字符为起始字段。
52.步骤2:基于获取到的设备标识符,生成用作设备唯一标识符device id的字符串。
53.步骤2中进一步包含三个步骤的处理,分别如下。
54.步骤2a:通过系统接口,基于步骤1获取到的设备标识符生成通用唯一识别码(uuid)字符串。
55.具体而言,本步骤2a中,是通过调用ios系统接口cfuuidcreate,来生成的32位字符的uuid字符串。
56.步骤2b:为uuid字符串提供

i.’前缀。
57.在本实施例中,为uuid字符串提供

i.’前缀仅为示例,在其他的实施例中,也可以用其他预设的字符为uuid字符串提供前缀。
58.步骤2c:通过系统接口,获取设备代号并追加至uuid字符串的最后方,形成以

i.’起始、uuid居中、设备代号截止的三段式且无字符串分隔的长串。
59.本步骤2c中的设备代号,即设备本身的型号(model)信息,是通过ios系统api sysctlbyname函数获取,其结果为字符串,例如:iphone11,8。
60.经过步骤2生成的设备唯一标识符device id,相比步骤1中获取到的设备标识符,增加了上述的设备本身的model信息(即设备代号)。
61.步骤3:通过跨应用缓存技术,缓存步骤2生成的用作设备唯一标识符device id的字符串。
62.步骤4:输出步骤2中生成的或步骤1中获取的字符串,作为设备唯一标识符device id,以供给业务方使用。
63.图2示出了本发明的设备唯一标识符的生成方法的第二实施例的流程。在本实施例中,是以本发明在android操作系统中的实现为例进行说明。
64.步骤1:读取外部存储指定文件中的字符串内容,判断读取到的字符串是否满足条件(条件为“不为空且符合预先制定的开头格式”),若满足则将读取到的字符串同步到
shared preferences存储方式下的指定文件和指定的关键字(key)中,提前返回读取到的字符串,整个流程结束。
65.例如,在外部存储中预先创建指定文件路径,指定文件路径中的buffered_final_udid_key为自定义部分,并且关键字key的键值以字符串的形式输出,判断该字符串是否为空并且符合预先制定的开头格式,比如是否是以

a.’开头的字符串。在本实施例中,以

a.’字符串为起始字段仅为示例,在其他的实施例中,也可以用其他预设的字符为起始字段。
66.如果从上述自定义的关键字中(buffered_final_udid_key)读取到的作为键值的字符串不为空且符合预先制定的开头格式,则将该键值(即上述字符串)同步到shared preferences(共享选项)存储方式下的指定文件和指定的关键字key中,之后提前返回读取到的字符串,整个流程结束。
67.共享选项(shared preferences)是android平台上一个轻量级的存储类,用来保存应用的一些常用配置,适用于存储轻量的数据。它分为多种权限,可以全局共享访问。
68.在本步骤中,同步到shared preferences(共享选项)存储方式下的指定文件和指定的关键字key中的目的,是为了防止当外部存储的内容被客观情况删除的时候,可以保障app仍然可获取到存储的内容。
69.步骤2:如果步骤1读取的字符串不满足条件(即,不符合“字符串不为空且符合预先制定的开头格式”的条件),则继续读取shared preferences存储方式下指定文件和指定key对应的键值字符串,如果步骤2中读取到的键值字符串符合条件(即,符合“字符串不为空且符合预先制定的开头格式”的条件),则再将步骤2中读取到的键值字符串同步写入到外部存储指定文件中,在写入到外部存储指定文件之前先检查是否有对应的对外部存储的访问权限,无权限则不做写入操作,提前返回在本步骤2中所读取的shared preferences中存储的键值字符串。
70.步骤3:如果步骤2中读取的键值字符串不满足条件(即,不符合“字符串不为空且符合预先制定的开头格式”的条件),则创建一个以

a.’开头的字符串,基于从系统中获取到的android_id(设备标志,是android系统提供给应用容易访问的设备id)进行多个字段的拼接和加密处理后形成最终的设备唯一标识符的格式,将最终格式的值同步到shared preferences存储方式下的指定文件目录和指定的关键字(key)中,以及外部存储指定文件中。
71.同样的,在上述处理中,以

a.’字符串为起始字段仅为示例,在其他的实施例中,也可以用其他预设的字符为起始字段。
72.android_id的值是随android系统变化的,是android系统唯一的id,是android系统第一次启动时随机产生的64bit(位)数,重新刷系统后也会变化,同时厂商定制系统的bug会导致不同的设备可能会产生相同的android_id,而且某些设备获取到的android_id为null。
73.考虑到上述情况,先通过其他的字段和android_id做拼接(其他的字段例如是时间戳、型号、设备硬件名称、设备硬件识别码的组合),再通过md5加密上述多个字段拼接的内容,生成32位加密字符串之后再与之前所创建的以

a.’开头的字符串进行拼接,形成最终的设备唯一标识符的格式:“a.(md5加密生成的32位字符串)”。
74.同步到外部存储指定文件是为了达到使用sdk(软件开发工具包)或者该种生成方
式下的app可以获取到同一个唯一标志,存储到sp的指定文件目录和关键字中是为了防止由于权限等问题外部存储的文件中没有内容,可以进而从当前私有目录下去读取。
75.图3示出了本发明的设备唯一标识符的生成系统的第一实施例的结构。请参见图3,本实施例的系统包括:设备标识符获取模块、设备唯一标识符生成模块、设备唯一标识符缓存模块、设备唯一标识符输出模块。
76.设备标识符获取模块配置为通过跨应用缓存获取设备标识符,如果设备标识符获取成功且其符合以预设字符为起始字段的规则,则直接跳转至设备唯一标识符输出模块。跨应用缓存是通过ios系统的seckeychain接口将包括设备标识符在内的数据缓存到公共钥匙串中
77.设备唯一标识符生成模块配置为基于设备标识符获取模块获取到的设备标识符,生成用作设备唯一标识符的字符串。
78.设备唯一标识符生成模块进一步配置为执行以下处理:通过ios系统接口,基于设备标识符获取模块所获取到的设备标识符生成通用唯一识别码字符串;为通用唯一识别码字符串提供预设字符前缀;通过ios系统接口,获取设备代号并追加至通用唯一识别码字符串的最后方,形成以预设字符前缀为起始、通用唯一识别码居中、设备代号截止的三段式且无字符串分隔的长串,作为设备唯一标识符的字符串。
79.设备唯一标识符缓存模块配置为通过跨应用缓存缓存设备唯一标识符生成模块所生成的用作设备唯一标识符的字符串。
80.设备唯一标识符输出模块配置为输出设备唯一标识符生成模块所生成的或设备标识符获取模块所获取的字符串,作为设备唯一标识符供给业务方使用。
81.图4示出了本发明的设备唯一标识符的生成系统的第二实施例的结构。请参见图4,本实施例的系统包括:外部存储指定文件处理模块、共享选项存储处理模块、设备唯一标识符创建模块。
82.外部存储指定文件处理模块配置为读取外部存储指定文件中的字符串内容,判断读取到的字符串是否满足条件,若满足则将读取到的字符串同步到共享选项存储方式下的指定文件和指定关键字中,之后提前返回读取到的字符串,整个流程结束。
83.外部存储指定文件处理模块中,在外部存储中预先创建指定文件路径,指定文件路径中包括自定义的关键字的字段,关键字的键值以字符串的形式输出,外部存储指定文件处理模块中的条件是判断字符串是否为空并且符合预先制定的开头格式。
84.共享选项存储处理模块配置为如果外部存储指定文件处理模块所读取的字符串不满足条件,则继续读取共享选项存储方式下的指定文件和指定关键字对应的键值字符串,如果共享选项存储处理模块中读取到的键值字符串符合条件,则再将共享选项存储处理模块中读取到的键值字符串同步写入到外部存储指定文件中,在写入到外部存储指定文件之前先检查是否有对应的对外部存储的访问权限,若无权限则不做写入操作,提前返回在共享选项存储处理模块中所读取的键值字符串。
85.设备唯一标识符创建模块配置为如果共享选项存储处理模块中读取的键值字符串不满足条件,则创建一个以预设字符开头的字符串,基于从安卓系统中获取到的设备标志,进行多个字段的拼接和加密处理后形成最终的设备唯一标识符的格式,将最终格式的值同步到共享选项存储方式下的指定文件目录和指定关键字中、以及外部存储指定文件
中。
86.设备唯一标识符创建模块中的多个字段的拼接和加密处理进一步包括:
87.先通过包括时间戳、型号、设备硬件名称、或者设备硬件识别码的组合在内的字段和设备标志做首次拼接,再通过md5加密首次拼接后的内容,生成加密字符串之后再与之前所创建的以预设字符开头的字符串进行再次拼接,形成最终的设备唯一标识符的格式。
88.尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
89.本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
90.结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如dsp与微处理器的组合、多个微处理器、与dsp核心协作的一个或多个微处理器、或任何其他此类配置。
91.结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动盘、cd-rom、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
92.在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、dsl、或诸如红外、无线电、以及微波之类的无线
技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
93.提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献