Cross-app unique identification generation method and device, equipment and storage medium

By obtaining the client's unique identifier and device fingerprint data, and using the server-side mapping table to generate a unique identifier across apps, the data isolation problem caused by changes in device identifiers is solved, achieving stable identifier generation and data unification across apps, and supporting business optimization.

CN114722437BActive Publication Date: 2026-02-10PING AN TECH (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210372199.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-11
Publication Date
2026-02-10
Estimated Expiration
2042-04-11

AI Technical Summary

Technical Problem

As the types of devices increase, the generation of device identifiers becomes more difficult, resulting in different identifiers for the same device across different apps. This leads to data isolation between apps, impacting business and product optimization.

Method used

By requesting the identifier within the client app, the client's unique identifier and device fingerprint data are obtained. Using the mapping table on the server side, the server ID corresponding to historical device fingerprint data with a similarity coefficient within a preset range is determined, and a cross-app unique identifier is generated.

Benefits of technology

It enables the generation of unique identifiers across apps, avoids data isolation, facilitates business and product optimization, ensures the stability and reliability of the identifiers, and protects personal privacy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114722437B_ABST
    Figure CN114722437B_ABST
Patent Text Reader

Abstract

The application relates to a cross-APP unique identification generation method, which comprises the following steps: based on an identification request of an APP in a client, obtaining client unique identification and device fingerprint data sent by the client; based on the client unique identification and a preset mapping relationship table, determining a server ID corresponding to the client unique identification, and updating historical device fingerprint data in the mapping relationship table based on the device fingerprint data; or, based on the device fingerprint data and the mapping relationship table, determining a server ID corresponding to historical device fingerprint data with a similarity coefficient of the device fingerprint data within a preset range, and updating historical client unique identification in the mapping relationship table based on the client unique identification; and taking the server ID as the unique identification of the APP. The application can generate the unique identification of a terminal device APP and realize cross-APP unique identification.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of identification generation, in particular to a cross-APP unique identification generation method and device, electronic equipment and computer readable storage medium. BACKGROUND

[0002] At present, the identification capability of the device is an indispensable basic capability for fine operation such as tracking user ecology, targeted push and clustering community. However, with the continuous development of technology, the number of devices is countless, and the generation of device identification is also increasing.

[0003] For example, mobile device systems such as Android 10 and iOS14 prohibit the leakage of multiple information such as IMEI and IDFA, and the generation of corresponding device identification is difficult, resulting in changes in device identification after the same device and the same App are uninstalled and reinstalled, and different device identifications of the same device and different Apps, so that each APP is independent of each other, which is not convenient for the optimization of business and products.

[0004] In addition, with the continuous expansion of business, multiple Apps may be online for the same business, and if the data of each App does not have a cross-APP unique identification, the data of each App will be isolated from each other, which is also not conducive to the optimization of each business and product. SUMMARY

[0005] The present application provides a cross-APP unique identification generation method, device, electronic equipment and computer readable storage medium, which mainly aims to generate APP unique identification, and is convenient for the optimization of business and products.

[0006] To achieve the above purpose, the present application provides a cross-APP unique identification generation method, comprising:

[0007] Based on the identification request of the APP in the client, the client unique identification and device fingerprint data sent by the client are obtained;

[0008] Based on the client unique identification and the preset mapping relationship table, the server ID corresponding to the client unique identification is determined, and the historical device fingerprint data in the mapping relationship table is updated based on the device fingerprint data; or,

[0009] Based on the device fingerprint data and the mapping relationship table, the server ID corresponding to the historical device fingerprint data with a similarity coefficient of the device fingerprint data within a preset range is determined, and the historical client unique identification in the mapping relationship table is updated based on the client unique identification;

[0010] The server ID is used as the unique identification of the APP.

[0011] Furthermore, the optional technical solution is that the step of obtaining the client unique identifier and the device fingerprint data sent by the client comprises:

[0012] Determining the device fingerprint data based on the device immutable fingerprint and the device semi-immutable fingerprint;

[0013] Encrypting and transmitting the device fingerprint data and the client unique identifier to the server;

[0014] Obtaining the client unique identifier and the device fingerprint data sent by the client by decrypting the encrypted client unique identifier and device fingerprint data.

[0015] Furthermore, the optional technical solution is that the device fingerprint data comprises: device startup time, system update time, country, language, device name, disk, physical memory, operator, device model, resolution, device system version, time zone, CPU information and Model information.

[0016] Furthermore, the optional technical solution is that the preset step of the mapping relationship table comprises:

[0017] Obtaining the client unique identifier and the device fingerprint data sent by the client;

[0018] Determining whether there is a corresponding mapping relationship table based on the client unique identifier and the device fingerprint data;

[0019] If the mapping relationship table does not exist, generating a unique random string as the server ID through UUID;

[0020] Creating the mapping relationship table based on the server ID, the client unique identifier and the device fingerprint data; wherein, in the mapping relationship table, the server ID, the client unique identifier and the device fingerprint data are mutually bound; otherwise,

[0021] If there is a mapping relationship table in the determination process, the existing mapping relationship table is taken as the preset mapping relationship table.

[0022] Furthermore, the optional technical solution is that the step of determining the server ID corresponding to the client unique identifier based on the client unique identifier and the preset mapping relationship table comprises:

[0023] Determining the mapping relationship table in which the historical client unique identifier is the same as the client unique identifier based on the client unique identifier;

[0024] Determining the server ID corresponding to the client unique identifier based on the mapping relationship table.

[0025] Further, the optional technical solution is that the step of determining, based on the device fingerprint data and the mapping relationship table, a server ID corresponding to historical device fingerprint data with a similarity coefficient of the device fingerprint data within a preset range comprises:

[0026] Based on the device fingerprint data, a system update time or a device startup time corresponding to the device fingerprint data is obtained;

[0027] Based on the system update time or the device startup time, all historical device fingerprint data within a corresponding time is queried in the mapping relationship table;

[0028] A similarity coefficient between the device fingerprint data and the historical device fingerprint data is obtained, and historical device fingerprint data with a similarity coefficient within a preset range is determined;

[0029] A corresponding server ID is determined based on the historical device fingerprint data.

[0030] Further, the optional technical solution is that if no historical device fingerprint data within a corresponding time is queried in the mapping relationship table based on the system update time or the device startup time, a unique random string is generated by UUID as the server ID, and the device fingerprint data, the client unique identifier and the server ID are saved to the mapping relationship table, and the server ID is taken as the unique identifier of the APP.

[0031] To solve the above problems, the application further provides a cross-APP unique identifier generation device, which comprises:

[0032] A data acquisition unit is configured to acquire a client unique identifier and device fingerprint data sent by a client based on an identifier request of an APP in the client;

[0033] A server ID first determination unit is configured to determine a server ID corresponding to the client unique identifier based on the client unique identifier and a preset mapping relationship table, and update historical device fingerprint data in the mapping relationship table based on the device fingerprint data; or,

[0034] A server ID second determination unit is configured to determine a server ID corresponding to historical device fingerprint data with a similarity coefficient of the device fingerprint data within a preset range based on the device fingerprint data and the mapping relationship table, and update historical client unique identifiers in the mapping relationship table based on the client unique identifier;

[0035] A unique identifier generation unit is configured to take the server ID as the unique identifier of the APP.

[0036] To solve the above problems, the application further provides an electronic device, which comprises:

[0037] a memory, which stores at least one instruction; and

[0038] a processor, which executes the instruction stored in the memory to implement the cross-APP unique identification generation method.

[0039] To solve the above problems, the application further provides a computer readable storage medium, which stores at least one instruction, and the at least one instruction is executed by a processor in an electronic device to implement the cross-APP unique identification generation method.

[0040] The embodiment of the application obtains the client unique identification and the device fingerprint data sent by the client through the identification request of the APP in the client, then determines the server ID corresponding to the client unique identification based on the client unique identification and the preset mapping relationship table, and updates the historical device fingerprint data in the mapping relationship table based on the device fingerprint data; or determines the server ID corresponding to the historical device fingerprint data with the similar coefficient of the device fingerprint data within the preset range based on the device fingerprint data and the mapping relationship table, and updates the historical client unique identification in the mapping relationship table based on the client unique identification, wherein the server ID can be used as the unique identification of the APP, the cross-APP unique identification can be realized, the mutual isolation of the APP data is avoided, and the optimization work of various businesses and products is facilitated. BRIEF DESCRIPTION OF DRAWINGS

[0041] Figure 1 The flowchart of the cross-APP unique identification generation method provided by the embodiment of the application is shown in the figure.

[0042] Figure 2 The module schematic diagram of the cross-APP unique identification generation device provided by the embodiment of the application is shown in the figure.

[0043] Figure 3 The internal structure schematic diagram of the electronic device for implementing the cross-APP unique identification generation method provided by the embodiment of the application is shown in the figure.

[0044] The implementation, functional features and advantages of the application will be further described with reference to the embodiments and the accompanying drawings. DETAILED DESCRIPTION

[0045] It should be understood that the specific embodiments described herein are only used to explain the application, and are not used to limit the application.

[0046] The application provides a cross-APP unique identification generation method. Referring to Figure 1As shown, a flowchart of a cross-APP unique identification generation method provided by an embodiment of the application is shown. The method can be executed by a device, which can be implemented by software and / or hardware.

[0047] In this embodiment, the cross-APP unique identification generation method comprises:

[0048] S100: Based on the identification request of the APP in the client, obtain the client unique identification and device fingerprint data sent by the client.

[0049] Wherein, although iOS and Android systems both provide cross-APP device unique identification generation schemes by default, such as IDFA of iOS and OAID of Android, which can meet the same ID of different APPs in the same device within a certain period of time. However, this unique ID is returned by the client, and needs to be authorized by the user (IDFA) to obtain; in addition, the unique identification ID can be reset on the client such as a mobile phone (after resetting, IDFA and OAID will also change), which also makes it have a certain uncertainty. It can be seen that the client method cannot generate a unique and unchangeable device ID, so the client method of generating a device unique identification is not feasible.

[0050] In this application, the server-side generation method is adopted to ensure the stability and reliability of the cross-APP unique identification. In step S100, a plurality of APPs can be set in the client, and the identification request of the APP can be understood as a default request sent by the APP to the server in the startup, update and other states.

[0051] Wherein, the step of obtaining the client unique identification and device fingerprint data sent by the client can further comprise:

[0052] S110: Determine the device fingerprint data based on the device unchangeable fingerprint and the device less changeable fingerprint.

[0053] S120: Encrypt and transmit the device fingerprint data and the client unique identification to the server.

[0054] S130: Obtain the client unique identification and device fingerprint data sent by the client by decrypting the encrypted client unique identification and device fingerprint data.

[0055] Specifically, when obtaining the client unique identification, the IOS system can use IDFA, and the Android can use OAID. Wherein, the IDFA needs to be authorized by the user, otherwise it cannot be obtained, and the OAID may not be obtained in a small amount of systems. In the case of being able to obtain and being unable to obtain, the final server ID can be determined, which will be described below.

[0056] In addition, the aforementioned device fingerprint data includes: device startup time, system update time, country, language, device name, disk, physical memory, carrier, device model, resolution, device system version, time zone, CPU information (number, type, subtype), and Model information (model and hwmodel); among which, immutable fingerprint data includes: disk, physical memory, device model, resolution, CPU information, and Model information; and non-mutable fingerprint data includes: device startup time, system update time, country, language, device name, carrier, device system version, and time zone.

[0057] The probability of duplicate fingerprint data from devices using the aforementioned 17 types of hardware is calculated as follows:

[0058] Assumptions: Everyone updates and starts their devices within 8 hours on a single workday; there are only 100 possible combinations for device names; all phones are from the same batch, so only unchanging hardware can participate in the probability calculation, and unchanging hardware from the same batch (such as CPU information) is the same; there are 3 possible combinations for carriers; and there are 10 possible combinations for phone system versions.

[0059] Correspondingly, after being accurate to milliseconds, the probability of repetition between different devices based on the above combination is: 1 / 8 (hour) * 3600 (second) * 1000 (millisecond) * 1000 (microsecond) * 100 (device name) * 3 (carrier) * 10 (system version) = 1 / 86400000000000.

[0060] In reality, device system updates are not that frequent, so they are not the same as the device's startup time. These two times have a combination relationship, and the probability calculation above only considers one of them. Furthermore, device names have more than 100 combinations, and not all devices are from the same batch. Therefore, invariant device information can also be included in the combination calculation. Different people's device system update times and phone restart frequencies and times are unlikely to all be concentrated on a single day. Based on the above data, it can be concluded that the probability of different devices generating the same device ID is extremely low.

[0061] Therefore, relying solely on the assumption that the above 17 sets of hardware are completely identical presents a problem: when most of the hardware information of a device remains unchanged, a change in a small amount of information can lead to different unique device identifiers. For example, if a device restarts, only the boot time changes, while other hardware information remains the same. To solve the problem of generating the same device identifier even with changes in a small amount of hardware information, the Jaccard similarity coefficient can be used to calculate the similarity between two sets of device fingerprint data.

[0062] S200: Based on the client's unique identifier and a preset mapping table, determine the server ID corresponding to the client's unique identifier, and update the historical device fingerprint data in the mapping table based on the device fingerprint data.

[0063] The preset mapping table is created for the first use or when the mapping table does not exist. If the mapping table already exists, it does not need to be created.

[0064] As a specific example, the preset steps for a mapping table may include:

[0065] S210: Obtain the client's unique identifier and the device fingerprint data sent by the client;

[0066] S220: Based on the client's unique identifier and the device fingerprint data, determine whether a corresponding mapping table exists;

[0067] S230: If the mapping table does not exist, a unique random string is generated using UUID or other methods and used as the server ID;

[0068] S240: Based on the server ID, the client unique identifier, and the device fingerprint data, create the mapping relationship table as a preset mapping relationship table; wherein, in the mapping relationship table, the server ID, the client unique identifier, and the device fingerprint data are mutually bound; otherwise, if the mapping relationship table exists, proceed to step S250.

[0069] S250: If a mapping table exists during the determination process, the existing mapping table is used as the preset mapping table, so that the mapping table does not need to be recreated.

[0070] If the mapping table has already been created or already exists, step S200, based on the client's unique identifier and the preset mapping table, determines the server ID corresponding to the client's unique identifier, and updates the historical device fingerprint data in the mapping table based on the device fingerprint data. This process may include:

[0071] 1. Based on the client's unique identifier, determine a mapping table between historical client unique identifiers and the client's unique identifier;

[0072] 2. Based on the mapping table, determine the server ID corresponding to the client's unique identifier.

[0073] In this step, the client's unique identifier is assumed to have been successfully obtained. Then, based on this client's unique identifier, the mapping table can be used to identify historical client unique identifiers that are identical to this client's unique identifier. Based on this client's unique identifier, the corresponding server ID can be determined and fed back to the client as a unique identifier across apps, and the subsequent process can be terminated.

[0074] Otherwise, as mentioned above, there may be situations where the acquisition of the client's unique identifier fails, such as when the user is not authorized; or, even if the user is authorized and the client's unique identifier is acquired, the client's unique identifier may be reset. In such cases, the corresponding server ID cannot be determined through the client's unique identifier. Therefore, it can be further acquired through the device fingerprint data, i.e., step S300 is executed.

[0075] It should be noted that during this step, the relevant device fingerprint data may change due to device updates or restarts. Therefore, after determining the server ID through the client's unique identifier, it is also necessary to update the historical device fingerprint data in the mapping table. That is, update the historical device fingerprint data in the mapping table based on the device fingerprint data to ensure that the data in the mapping table is always up-to-date.

[0076] S300: Based on the device fingerprint data and the mapping table, determine the server ID corresponding to historical device fingerprint data whose similarity coefficient with the device fingerprint data is within a preset range, and update the historical client unique identifier in the mapping table based on the client unique identifier.

[0077] The step of determining the server ID corresponding to historical device fingerprint data with a similarity coefficient within a preset range, based on device fingerprint data and the mapping table, includes:

[0078] S310: Based on the device fingerprint data, obtain the system update time or device startup time corresponding to the device fingerprint data;

[0079] S320: Based on the system update time or the device startup time, query the mapping table for all historical device fingerprint data within the corresponding time period;

[0080] S330: Obtain the similarity coefficient between the device fingerprint data and the historical device fingerprint data, and determine the historical device fingerprint data whose similarity coefficient is within a preset range;

[0081] S340: Determine the corresponding server ID based on the historical device fingerprint data.

[0082] Specifically, if the client's unique identifier is not successfully obtained or has been reset, meaning the corresponding server ID cannot be found in the mapping table using the client's unique identifier, then further querying can be performed using the device fingerprint data. The premise for obtaining the similarity coefficient between the device fingerprint data and the historical device fingerprint data is that at least one of the startup time or system update time of the two sets of data must be the same.

[0083] As a concrete example, the Jaccard similarity coefficient can be used to measure the similarity between two device fingerprint data. If the startup time and system update time of two sets of devices are completely different, but all other information is the same (i.e., 15 out of the 17 sets of device fingerprint data are identical), then the obtained Jaccard similarity coefficient is 15 / 17 = 88%. Since the similarity coefficient is greater than the threshold of 0.8, it would be judged as the same device. However, this judgment of the same device is unreliable. This is because: in the algorithm for calculating the probability of device duplication: 1 / 8 (hour) * 3600 (second) * 1000 (millisecond) * 1000 (microsecond) * 100 (device name) * 3 (carrier) * 10 (system version) = 1 / 86400000000000. If the time-related dimension is excluded, the device duplication rate directly becomes 1 / 100 * 3 * 10 = 1 / 3000, meaning the device duplication rate is 1 / 3000. The device duplication rate is too high, so the above result is unreliable.

[0084] Therefore, based on the system update time or the device startup time, it is necessary to query all historical device fingerprint data within the corresponding time period in the mapping table to ensure that the system update time or device startup time is the same. Then, the similarity coefficient between the device fingerprint data and the historical device fingerprint data is calculated. If the similarity coefficient is within a preset range, the corresponding server ID can be determined based on the historical fingerprint data corresponding to the current device fingerprint data and the value is fed back to the client.

[0085] If no historical device fingerprint data for the corresponding time period is found in the mapping table based on the system update time or the device startup time, a unique random string is generated using the UUID as the server ID, and the device fingerprint data, the client's unique identifier, and the server ID are saved to the mapping table. The server ID is then used as the unique identifier for the (cross)APP.

[0086] Since the solution of generating a unique server ID based on device fingerprint data relies on 17 sets of device fingerprints, some of these 17 sets of fingerprint data may change over time, such as due to changes in startup time or carrier information caused by changing SIM cards. However, most of them will not change. Therefore, it is necessary to update the mapping table D with new device fingerprint data in a timely manner. The update should be performed every time the client requests the server ID from the server.

[0087] S400: The server ID is used as the unique identifier of the APP.

[0088] As can be seen, by following the above steps and using the server ID as a unique identifier across apps, we can ensure the secure collection of personal privacy information while guaranteeing that the same unique identifier is generated within or between apps on the same device. This facilitates subsequent refined operational tracking and prevents black market activities involving devices.

[0089] like Figure 2 The diagram shown is a functional block diagram of the cross-APP unique identifier generation device of the present invention.

[0090] The cross-app unique identifier generation device 100 of the present invention can be installed in an electronic device. Depending on the functions implemented, the cross-app unique identifier generation device may include: a data acquisition unit 101, a server ID first determination unit 102, a server ID second determination unit 103, and a unique identifier generation unit 104. The module described in this invention can also be referred to as a unit, which refers to a series of computer program segments that can be executed by the processor of an electronic device and can perform a fixed function, and which are stored in the memory of the electronic device.

[0091] In this embodiment, the functions of each module / unit are as follows:

[0092] The data acquisition unit 101 is used to acquire the client's unique identifier and device fingerprint data sent by the client based on the identifier request of the APP in the client.

[0093] In this invention, a server-side generation method is adopted to ensure the stability and reliability of the unique identifier across apps. In step S100, multiple apps can be set in the client. The identifier request of an app can be understood as the default request sent to the server by the app when it is in the startup, update or other states.

[0094] The data acquisition unit 101 may further include:

[0095] The device fingerprint data determination module is used to determine the device fingerprint data based on the device's unchanging fingerprint and the device's difficult-to-change fingerprint;

[0096] An encrypted transmission module is used to encrypt and transmit the device fingerprint data and the client's unique identifier to the server;

[0097] The decryption and data acquisition module is used to decrypt the encrypted client unique identifier and device fingerprint data to obtain the client unique identifier and device fingerprint data sent by the client.

[0098] Specifically, when obtaining the client's unique identifier, iOS systems can use IDFA, while Android systems can use OAID. IDFA requires user authorization, otherwise it cannot be obtained. OAID may not be obtainable on a small number of systems. In both cases where it can be obtained and cases where it cannot be obtained, the final server ID can be determined. The following will explain the two cases separately.

[0099] In addition, the aforementioned device fingerprint data includes: device startup time, system update time, country, language, device name, disk, physical memory, carrier, device model, resolution, device system version, time zone, CPU information (number, type, subtype), and Model information (model and hwmodel); among which, immutable fingerprint data includes: disk, physical memory, device model, resolution, CPU information, and Model information; and non-mutable fingerprint data includes: device startup time, system update time, country, language, device name, carrier, device system version, and time zone.

[0100] The probability of duplicate fingerprint data from devices using the aforementioned 17 types of hardware is calculated as follows:

[0101] Assumptions: Everyone updates and starts their devices within 8 hours on a single workday; there are only 100 possible combinations for device names; all phones are from the same batch, so only unchanging hardware can participate in the probability calculation, and unchanging hardware from the same batch (such as CPU information) is the same; there are 3 possible combinations for carriers; and there are 10 possible combinations for phone system versions.

[0102] Correspondingly, after being accurate to milliseconds, the probability of repetition between different devices based on the above combination is: 1 / 8 (hour) * 3600 (second) * 1000 (millisecond) * 1000 (microsecond) * 100 (device name) * 3 (carrier) * 10 (system version) = 1 / 86400000000000.

[0103] In reality, device system updates are not that frequent, so they are not the same as the device's startup time. These two times have a combination relationship, and the probability calculation above only considers one of them. Furthermore, device names have more than 100 combinations, and not all devices are from the same batch. Therefore, invariant device information can also be included in the combination calculation. Different people's device system update times and phone restart frequencies and times are unlikely to all be concentrated on a single day. Based on the above data, it can be concluded that the probability of different devices generating the same device ID is extremely low.

[0104] Therefore, relying solely on the assumption that the above 17 sets of hardware are completely identical presents a problem: when most of the hardware information of a device remains unchanged, a change in a small amount of information can lead to different unique device identifiers. For example, if a device restarts, only the boot time changes, while other hardware information remains the same. To solve the problem of generating the same device identifier even with changes in a small amount of hardware information, the Jaccard similarity coefficient can be used to calculate the similarity between two sets of device fingerprint data.

[0105] The server ID first determination unit 102 is used to determine the server ID corresponding to the client's unique identifier based on the client's unique identifier and a preset mapping table, and to update the historical device fingerprint data in the mapping table based on the device fingerprint data.

[0106] The preset mapping table is created for the first use or when the mapping table does not exist. If the mapping table already exists, it does not need to be created.

[0107] As a specific example, the pre-defined process for a mapping table may include:

[0108] The data acquisition module is used to acquire the client's unique identifier and the device fingerprint data sent by the client;

[0109] The judgment module is used to determine whether a corresponding mapping table exists based on the client's unique identifier and the device fingerprint data; if the mapping table does not exist, a unique random string is generated using UUID or other methods as the server ID;

[0110] The mapping table creation module is used to create a mapping table as a preset mapping table based on the server ID, the client unique identifier, and the device fingerprint data; wherein, in the mapping table, the server ID, the client unique identifier, and the device fingerprint data are mutually bound; otherwise, if the mapping table exists, the next module is executed.

[0111] The query module is used to use the existing mapping table as the preset mapping table if a mapping table exists during the judgment process. This means that the mapping table does not need to be recreated, but can be queried directly through the mapping table.

[0112] If the mapping table has already been created or already exists, step S200, based on the client's unique identifier and the preset mapping table, determines the server ID corresponding to the client's unique identifier, and updates the historical device fingerprint data in the mapping table based on the device fingerprint data. This process may include:

[0113] 1. Based on the client's unique identifier, determine a mapping table between historical client unique identifiers and the client's unique identifier;

[0114] 2. Based on the mapping table, determine the server ID corresponding to the client's unique identifier.

[0115] In this step, the client's unique identifier is assumed to have been successfully obtained. Then, based on this client's unique identifier, the mapping table can be used to identify historical client unique identifiers that are identical to this client's unique identifier. Based on this client's unique identifier, the corresponding server ID can be determined and fed back to the client as a unique identifier across apps, and the subsequent process can be terminated.

[0116] Otherwise, as mentioned above, there may be situations where the acquisition of the client's unique identifier fails, such as when the user is not authorized; or, even if the user is authorized and the client's unique identifier is acquired, the client's unique identifier may be reset. In such cases, it is impossible to determine the corresponding server ID through the client's unique identifier. Therefore, it can be further acquired through the device fingerprint data, i.e., the server ID second determination unit 103 is executed.

[0117] It should be noted that during this step, the relevant device fingerprint data may change due to device updates or restarts. Therefore, after determining the server ID through the client's unique identifier, it is also necessary to update the historical device fingerprint data in the mapping table. That is, update the historical device fingerprint data in the mapping table based on the device fingerprint data to ensure that the data in the mapping table is always up-to-date.

[0118] The server ID second determination unit 103 determines the server ID corresponding to historical device fingerprint data with a similarity coefficient within a preset range based on the device fingerprint data and the mapping relationship table, and updates the historical client unique identifier in the mapping relationship table based on the client unique identifier.

[0119] The server ID corresponding to historical device fingerprint data with a similarity coefficient within a preset range, determined based on device fingerprint data and the mapping table, includes:

[0120] The time acquisition module is used to acquire the system update time or device startup time corresponding to the device fingerprint data based on the device fingerprint data.

[0121] The device fingerprint data query module is used to query all historical device fingerprint data within the corresponding time period in the mapping table based on the system update time or the device startup time.

[0122] A similarity coefficient acquisition module is used to acquire the similarity coefficient between the device fingerprint data and the historical device fingerprint data, and to determine the historical device fingerprint data whose similarity coefficient is within a preset range;

[0123] The ID determination module is used to determine the corresponding server ID based on the historical device fingerprint data.

[0124] Specifically, if the client's unique identifier is not successfully obtained or has been reset, meaning the corresponding server ID cannot be found in the mapping table using the client's unique identifier, then further querying can be performed using the device fingerprint data. The premise for obtaining the similarity coefficient between the device fingerprint data and the historical device fingerprint data is that at least one of the startup time or system update time of the two sets of data must be the same.

[0125] As a concrete example, the Jaccard similarity coefficient can be used to measure the similarity between two device fingerprint data. If the startup time and system update time of two sets of devices are completely different, but all other information is the same (i.e., 15 out of the 17 sets of device fingerprint data are identical), then the obtained Jaccard similarity coefficient is 15 / 17 = 88%. Since the similarity coefficient is greater than the threshold of 0.8, it would be judged as the same device. However, this judgment of the same device is unreliable. This is because: in the algorithm for calculating the probability of device duplication: 1 / 8 (hour) * 3600 (second) * 1000 (millisecond) * 1000 (microsecond) * 100 (device name) * 3 (carrier) * 10 (system version) = 1 / 86400000000000. If the time-related dimension is excluded, the device duplication rate directly becomes 1 / 100 * 3 * 10 = 1 / 3000, meaning the device duplication rate is 1 / 3000. The device duplication rate is too high, so the above result is unreliable.

[0126] Therefore, based on the system update time or the device startup time, it is necessary to query all historical device fingerprint data within the corresponding time period in the mapping table to ensure that the system update time or device startup time is the same. Then, the similarity coefficient between the device fingerprint data and the historical device fingerprint data is calculated. If the similarity coefficient is within a preset range, the corresponding server ID can be determined based on the historical fingerprint data corresponding to the current device fingerprint data and the value is fed back to the client.

[0127] If no historical device fingerprint data for the corresponding time period is found in the mapping table based on the system update time or the device startup time, a unique random string is generated using the UUID as the server ID, and the device fingerprint data, the client's unique identifier, and the server ID are saved to the mapping table. The server ID is then used as the unique identifier for the (cross)APP.

[0128] Since the solution of generating a unique server ID based on device fingerprint data relies on 17 sets of device fingerprints, some of these 17 sets of fingerprint data may change over time, such as due to changes in startup time or carrier information caused by changing SIM cards. However, most of them will not change. Therefore, it is necessary to update the mapping table D with new device fingerprint data in a timely manner. The update should be performed every time the client requests the server ID from the server.

[0129] The unique identifier generation unit 104 is used to use the server ID as the unique identifier of the APP.

[0130] As can be seen, after the execution of the above-mentioned unit modules, the use of the server ID as a unique identifier across apps can ensure the secure collection of personal privacy information while ensuring that the same unique identifier is generated within or between apps on the same device. This facilitates subsequent refined operation and tracking, as well as preventing device black market activities.

[0131] like Figure 3 The diagram shown is a structural schematic of an electronic device that implements the cross-APP unique identifier generation method of the present invention.

[0132] The electronic device 1 may include a processor 10, a memory 11 and a bus, and may also include a computer program stored in the memory 11 and capable of running on the processor 10, such as a cross-APP unique identifier generation program 12.

[0133] The memory 11 includes at least one type of readable storage medium, such as flash memory, portable hard drive, multimedia card, card-type memory (e.g., SD or DX memory), magnetic memory, magnetic disk, optical disk, etc. In some embodiments, the memory 11 can be an internal storage unit of the electronic device 1, such as the portable hard drive of the electronic device 1. In other embodiments, the memory 11 can be an external storage device of the electronic device 1, such as a plug-in portable hard drive, smart media card (SMC), secure digital card (SD), flash card, etc., equipped on the electronic device 1. Furthermore, the memory 11 can include both internal and external storage units of the electronic device 1. The memory 11 can be used not only to store application software and various types of data installed on the electronic device 1, such as the code for a cross-app unique identifier generation program, but also to temporarily store data that has been output or will be output.

[0134] In some embodiments, the processor 10 may be composed of integrated circuits, such as a single packaged integrated circuit or multiple integrated circuits with the same or different functions, including combinations of one or more central processing units (CPUs), microprocessors, digital processing chips, graphics processors, and various control chips. The processor 10 is the control unit of the electronic device, connecting various components of the entire electronic device through various interfaces and lines. It executes programs or modules stored in the memory 11 (e.g., cross-APP unique identifier generation programs) and calls data stored in the memory 11 to perform various functions of the electronic device 1 and process data.

[0135] The bus can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. This bus can be divided into an address bus, a data bus, a control bus, etc. The bus is configured to enable communication between the memory 11 and at least one processor 10, etc.

[0136] Figure 3 Only electronic devices with components are shown; it will be understood by those skilled in the art that... Figure 3The structure shown does not constitute a limitation on the electronic device 1, and may include fewer or more components than shown, or combine certain components, or have different component arrangements.

[0137] For example, although not shown, the electronic device 1 may also include a power supply (such as a battery) to power various components. Preferably, the power supply can be logically connected to the at least one processor 10 through a power management device, thereby enabling functions such as charging management, discharging management, and power consumption management. The power supply may also include one or more DC or AC power supplies, recharging devices, power fault detection circuits, power converters or inverters, power status indicators, and other arbitrary components. The electronic device 1 may also include various sensors, Bluetooth modules, Wi-Fi modules, etc., which will not be described in detail here.

[0138] Furthermore, the electronic device 1 may also include a network interface. Optionally, the network interface may include a wired interface and / or a wireless interface (such as a Wi-Fi interface, a Bluetooth interface, etc.), which is typically used to establish communication connections between the electronic device 1 and other electronic devices.

[0139] Optionally, the electronic device 1 may further include a user interface, which may be a display, an input unit (such as a keyboard), or a standard wired or wireless interface. Optionally, in some embodiments, the display may be an LED display, a liquid crystal display, a touch-sensitive liquid crystal display, or an OLED (Organic Light-Emitting Diode) touchscreen. The display may also be appropriately referred to as a screen or display unit, used to display information processed in the electronic device 1 and to display a visual user interface.

[0140] It should be understood that the embodiments described are for illustrative purposes only and are not limited to this structure in the scope of the patent application.

[0141] The cross-APP unique identifier generation program 12 stored in the memory 11 of the electronic device 1 is a combination of multiple instructions. When run in the processor 10, it can achieve the following:

[0142] Based on the identification request from the APP within the client, obtain the client's unique identifier and device fingerprint data sent by the client;

[0143] Based on the client's unique identifier and a preset mapping table, determine the server ID corresponding to the client's unique identifier, and update the historical device fingerprint data in the mapping table based on the device fingerprint data; or,

[0144] Based on the device fingerprint data and the mapping table, determine the server ID corresponding to historical device fingerprint data with a similarity coefficient within a preset range to the device fingerprint data, and update the historical client unique identifier in the mapping table based on the client unique identifier;

[0145] The server ID is used as the unique identifier for the APP.

[0146] In addition, an optional technical solution is that the step of obtaining the client's unique identifier and device fingerprint data sent by the client includes:

[0147] The device fingerprint data is determined based on the device's unchanging fingerprint and the device's difficult-to-change fingerprint.

[0148] The device fingerprint data and the client's unique identifier are encrypted and transmitted to the server.

[0149] The client's unique identifier and device fingerprint data sent by the client are obtained by decrypting the encrypted client unique identifier and device fingerprint data.

[0150] In addition, an optional technical solution is that the device fingerprint data includes: device startup time, system update time, country, language, device name, disk, physical memory, carrier, device model, resolution, device system version, time zone, CPU information, and model information.

[0151] In addition, an optional technical solution is that the preset steps of the mapping table include:

[0152] Obtain the client's unique identifier and the device fingerprint data sent by the client;

[0153] Based on the client's unique identifier and the device fingerprint data, determine whether a corresponding mapping table exists;

[0154] If the mapping table does not exist, a unique random string is generated using the UUID and used as the server ID;

[0155] Based on the server ID, the client unique identifier, and the device fingerprint data, a mapping table is created; wherein, in the mapping table, the server ID, the client unique identifier, and the device fingerprint data are mutually bound; otherwise...

[0156] If a mapping table exists during the judgment process, then the existing mapping table is used as the preset mapping table.

[0157] In addition, an optional technical solution is that the step of determining the server ID corresponding to the client's unique identifier based on the client's unique identifier and a preset mapping table includes:

[0158] Based on the client's unique identifier, a mapping table is determined that shows the same historical client unique identifier as the client's unique identifier.

[0159] Based on the mapping table, determine the server ID corresponding to the client's unique identifier.

[0160] In addition, an optional technical solution is that the step of determining the server ID corresponding to historical device fingerprint data with a similarity coefficient within a preset range to the device fingerprint data based on the device fingerprint data and the mapping relationship table includes:

[0161] Based on the device fingerprint data, obtain the system update time or device startup time corresponding to the device fingerprint data;

[0162] Based on the system update time or the device startup time, query the mapping table for all historical device fingerprint data within the corresponding time period;

[0163] Obtain the similarity coefficient between the device fingerprint data and the historical device fingerprint data, and determine the historical device fingerprint data whose similarity coefficient is within a preset range;

[0164] The corresponding server ID is determined based on the historical device fingerprint data.

[0165] In addition, an optional technical solution is that if no historical device fingerprint data for the corresponding time period is found in the mapping table based on the system update time or the device startup time, a unique random string is generated using the UUID as the server ID, and the device fingerprint data, the client's unique identifier, and the server ID are saved to the mapping table, with the server ID serving as the unique identifier of the APP.

[0166] Furthermore, if the modules / units integrated in the electronic device 1 are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. The computer-readable medium may include: any entity or device capable of carrying the computer program code, a recording medium, a USB flash drive, a portable hard drive, a magnetic disk, an optical disk, a computer memory, or a read-only memory (ROM).

[0167] In the several embodiments provided by this invention, it should be understood that the disclosed devices, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and other division methods may be used in actual implementation.

[0168] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.

[0169] Furthermore, the functional modules in the various embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or in the form of hardware plus software functional modules.

[0170] It will be apparent to those skilled in the art that the present invention is not limited to the details of the exemplary embodiments described above, and that the present invention can be implemented in other specific forms without departing from the spirit or essential characteristics of the present invention.

[0171] Therefore, the embodiments should be considered exemplary and non-limiting in all respects, and the scope of the invention is defined by the appended claims rather than the foregoing description. Thus, all variations falling within the meaning and scope of equivalents of the claims are intended to be embraced within the invention. No appended diagram markings in the claims should be construed as limiting the scope of the claims.

[0172] Furthermore, it is clear that the word "comprising" does not exclude other units or steps, and the singular does not exclude the plural. Multiple units or devices recited in a system claim may also be implemented by a single unit or device through software or hardware. The term "second class" is used to indicate names and does not indicate any specific order.

[0173] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and are not intended to limit it. Although the present invention has been described in detail with reference to preferred embodiments, those skilled in the art should understand that modifications or equivalent substitutions can be made to the technical solutions of the present invention without departing from the spirit and scope of the technical solutions of the present invention.

Claims

1. A method for generating a unique identifier across multiple apps, characterized in that, The method includes: Based on the identification request from the APP within the client, obtain the client's unique identifier and device fingerprint data sent by the client; Based on the client's unique identifier and a preset mapping table, the server ID corresponding to the client's unique identifier is determined, and the historical device fingerprint data in the mapping table is updated based on the device fingerprint data. When the client's unique identifier has been reset and the corresponding server ID cannot be determined by the client's unique identifier, based on the device fingerprint data and the mapping table, the server ID corresponding to the historical device fingerprint data whose similarity coefficient with the device fingerprint data is within a preset range is determined, and the historical client unique identifier in the mapping table is updated based on the client's unique identifier. Use the server ID as the unique identifier for the APP; The preset steps of the mapping table include: Obtain the client's unique identifier and the device fingerprint data sent by the client; Based on the client's unique identifier and the device fingerprint data, determine whether a corresponding mapping table exists; If the mapping table does not exist, a unique random string is generated using the UUID and used as the server ID; Based on the server ID, the client unique identifier, and the device fingerprint data, a mapping table is created; wherein, in the mapping table, the server ID, the client unique identifier, and the device fingerprint data are mutually bound; otherwise... If a mapping table exists during the judgment process, then the existing mapping table is used as the preset mapping table.

2. The method for generating a unique identifier across apps as described in claim 1, characterized in that, The steps of obtaining the client's unique identifier and device fingerprint data sent by the client include: The device fingerprint data is determined based on the device's unchanging fingerprint and the device's difficult-to-change fingerprint. The device fingerprint data and the client's unique identifier are encrypted and transmitted to the server. The client's unique identifier and device fingerprint data sent by the client are obtained by decrypting the encrypted client unique identifier and device fingerprint data.

3. The method for generating a unique identifier across apps as described in claim 1, characterized in that, The device fingerprint data includes: device startup time, system update time, country, language, device name, disk, physical memory, carrier, device model, resolution, device system version, time zone, CPU information, and model information.

4. The method for generating a unique identifier across apps as described in claim 1, characterized in that, The step of determining the server ID corresponding to the client's unique identifier based on the client's unique identifier and a preset mapping table includes: Based on the client's unique identifier, a mapping table is determined that corresponds to historical client unique identifiers and the client's unique identifier. Based on the mapping table, determine the server ID corresponding to the client's unique identifier.

5. The method for generating a unique identifier across apps as described in claim 1, characterized in that, The step of determining the server ID corresponding to historical device fingerprint data whose similarity coefficient with the device fingerprint data is within a preset range based on the device fingerprint data and the mapping table includes: Based on the device fingerprint data, obtain the system update time or device startup time corresponding to the device fingerprint data; Based on the system update time or the device startup time, query the mapping table for all historical device fingerprint data within the corresponding time period; Obtain the similarity coefficient between the device fingerprint data and the historical device fingerprint data, and determine the historical device fingerprint data whose similarity coefficient is within a preset range; The corresponding server ID is determined based on the historical device fingerprint data.

6. The method for generating a unique identifier across apps as described in claim 5, characterized in that, If no historical device fingerprint data for the corresponding time period is found in the mapping table based on the system update time or the device startup time, a unique random string is generated using the UUID as the server ID, and the device fingerprint data, the client's unique identifier, and the server ID are saved to the mapping table, with the server ID serving as the unique identifier of the APP.

7. A cross-app unique identifier generation device, characterized in that, The device includes: The data acquisition unit is used to acquire the client's unique identifier and device fingerprint data sent by the client based on the identifier request of the APP in the client. The server ID first determination unit is used to determine the server ID corresponding to the client's unique identifier based on the client's unique identifier and a preset mapping table, and to update the historical device fingerprint data in the mapping table based on the device fingerprint data. The second server ID determination unit, when the client unique identifier has been reset and the corresponding server ID cannot be determined by the client unique identifier, determines the server ID corresponding to historical device fingerprint data whose similarity coefficient with the device fingerprint data is within a preset range based on the device fingerprint data and the mapping relationship table, and updates the historical client unique identifier in the mapping relationship table based on the client unique identifier. A unique identifier generation unit is used to use the server ID as the unique identifier of the APP; The preset steps of the mapping table include: Obtain the client's unique identifier and the device fingerprint data sent by the client; Based on the client's unique identifier and the device fingerprint data, determine whether a corresponding mapping table exists; If the mapping table does not exist, a unique random string is generated using the UUID and used as the server ID; Based on the server ID, the client unique identifier, and the device fingerprint data, a mapping table is created; wherein, in the mapping table, the server ID, the client unique identifier, and the device fingerprint data are mutually bound; otherwise... If a mapping table exists during the judgment process, then the existing mapping table is used as the preset mapping table.

8. An electronic device, characterized in that, The electronic device includes: At least one processor; and, A memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the steps in the cross-APP unique identifier generation method as described in any one of claims 1 to 6.

9. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by the processor, it implements the steps in the cross-APP unique identifier generation method as described in any one of claims 1 to 6.

Citation Information

Patent Citations

  • Acquisition method of equipment identifier, server and terminal equipment

    CN108156268A

  • Device identification determination method and device, server, and storage medium

    CN109543462A