CN107480151A - 一种跨平台的互联文档id生成方法 - Google Patents
一种跨平台的互联文档id生成方法 Download PDFInfo
- Publication number
- CN107480151A CN107480151A CN201610399667.2A CN201610399667A CN107480151A CN 107480151 A CN107480151 A CN 107480151A CN 201610399667 A CN201610399667 A CN 201610399667A CN 107480151 A CN107480151 A CN 107480151A
- Authority
- CN
- China
- Prior art keywords
- information
- time
- random number
- adjusting parameter
- system time
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种跨平台的互联文档ID生成方法,包括:步骤1:获取设备信息,获取的设备信息使用哈希算法编码成第一设定数量个字节数据;步骤2:获取第二设定数量个字节真随机数作为第一随机数信息;步骤3:获取操作系统状态信息,所述操作系统状态信息是当前状态下系统运行时的信息,使用哈希算法编码成第三设定数量个字节数据;步骤4:获取第四设定数量个字节真随机数作为第二随机数信息;步骤5:获取时间信息,所述时间信息由当前系统时间、时间调整参数和时间戳调整参数组成,通过哈希编码处理后保存在硬盘的一个文件中;步骤6:将以上各信息按照设定顺序组成一个字符串,生成最终的互联文档ID。
Description
技术领域
本发明涉及文档网络应用领域,具体而言,涉及一种跨平台的互联文档ID生成方法。
背景技术
随着互联PDF文件的诞生和普及,围绕着海量的具有唯一性特征的互联PDF文档的构成的生态圈逐渐被构建.所有的互联PDF文档在逻辑和物理上都是链接的,纵向链接:内容引用、修改、数据、保护、工作流等,横向链接:分发、分享、使用等。允许所有链接对特定文档的快速存取,通过客户端收集互联连接信息并存放云服务的元数据库中,元数据对应着一个互联PDF文档,以上都需要一个唯一ID与一个PDF关联起来,ID就是文档的身份证,通过具有唯一性特征的互联PDF文件,以ID为主线,可以做到文档的互联,人的互联以及系统的互联,这个ID是关键标示,如果利用各个平台生成的uuID作为互联PDF的ID,比如windows操作系统使用uudCreate,Unix/Linux环境中大都有一个名为uuIDgen的小工具,MacOSX可以使用CFUUID或者CFUUIDCreate等方法,平台不同,生成的ID不同,ID的长度也不同,由于互联PDF服务系统要做到全平台互联,ID的生成规格必须一致,所有的客户端要使用同一种ID生成方法,需要解决跨平台问题,另外,随着互联PDF以后动辄以亿计的文档数量级别的链接,ID的重复概率必须要足够低,ID的长度也不能太短,所以大多数的操作系统生成的uuID都不能作为互联PDF的ID,必须要有一个统一的跨平台的ID生成方法,这个方法确保ID是世界唯一的,支持大数据量互联文档的身份定义。
发明内容
本发明提供一种跨平台的互联文档ID生成方法,用以克服现有技术中存在的至少一个问题。
为达到上述目的,本发明提供了一种跨平台的互联文档ID生成方法,包括:
步骤1:获取设备信息,获取的设备信息使用哈希算法编码成第一设定数量个字节数据;
步骤2:获取第二设定数量个字节真随机数作为第一随机数信息;
步骤3:获取操作系统状态信息,所述操作系统状态信息是当前状态下系统运行时的信息,使用哈希算法编码成第三设定数量个字节数据;
步骤4:获取第四设定数量个字节真随机数作为第二随机数信息;
步骤5:获取时间信息,所述时间信息由当前系统时间、时间调整参数和时间戳调整参数组成,通过哈希编码处理后保存在硬盘的一个文件中;
步骤6:将以上时间信息,设备信息,第一随机数信息,第二随机数信息,操作系统状态信息,用户数据信息,操作系统类型信息按照设定顺序组成一个字符串,生成最终的互联文档ID;
其中,步骤1至步骤5的顺序排列可调整。
进一步地,第一次获取设备信息后,将所获取的设备信息存储起来,以备下一次生成ID重复使用。
进一步地,如果设备信息获取不到,使用真随机数模拟设备信息。
进一步地,如果操作系统状态信息获取不到,使用真随机数模拟操作系统状态信息。
进一步地,当需要生成一个ID时,首先从所述文件中获取上一次的系统时间、时间调整参数和时间戳调整参数,如果获取的当前系统时间比上一次系统时间晚,则将当前的系统时间作为ID的一个部分;如果获取的当前系统时间和上一次系统时间一样,则调整时间调整参数,使当前系统时间和时间调整参数与上一次系统时间和时间调整参数不同;如果获取的当前系统时间比上一次系统时间早,则调整时间戳调整参数,使当前的系统时间和时间戳调整参数与上一次系统时间和时间戳调整参数不同。
本发明达到的有益效果包括几个方面:
使用同一套c/c++实现,生成的ID规格一致,可以在不同平台运行,达到跨平台特性;
使用文件的方式来存储时间信息,使得相同设备生成的ID的重复概率为0;
使用当前操作系统运行信息,设备信息,真随机数信息,使得不同设备生成的ID重复概率极低;
以上三点可以满足互联PDF的大数据需求,保证一个互联PDF文档对应一个ID,实现文档互联,人的互联和系统的互联,为以后互联PDF生态系统提供互联的基础保证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例的跨平台的互联文档ID生成方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种跨平台的,重复性较低的ID生成方法。本发明生成ID的方法具有跨平台性,实现方法使用c/c++实现,可以在windows系统,linux系统,mac,ios,andoird几个主流的桌面平台和嵌入平台编译和运行。
本发明生成的ID由以下六个部分构成:
1.)时间信息;2.)设备信息;3.)随机数信息;4.)操作系统状态信息;5.)用户数据信息;6.)操作系统类型信息。
操作系统类型信息,本发明可以使用一个字节标示操作系统信息,使得不同操作系统生成的ID永远不相同,降低重复概率。
用户数据信息,本发明允许用户可以设置一个字节用户数据作为ID的组成部分,用户数据由用户任意定义,比如不同软件,ID的不同使用方法等,降低重复概率。
操作系统状态信息,操作系统状态信息是运行在硬件设备的操作系统上的运行时信息,如包括内存状态信息,当前堆栈状态信息,进程ID,线程ID,当前时间,操作系统用户名称,计算机名称等软件信息。这些信息在本发明中可以使用SHA1哈希算法编码成8个字节数据。
随机数信息,随机数可以是伪随机数也可以是真随机数,本发明使用真随机数,随机序列如果被认为是随机数,必须要符合以下几个特性:
1.)能够通过所有的正确的随机性测试,如fips,SP800等;
2.)分布均匀性,随机序列的每一位都应该满足等概率分布,长期来看,每一bits出现的0和1的概率是50%;
3.)无周期规律性,随机性序列没有周期性,或者说周期性为无限长,并且不能有其他规律性,自相关系数等于0,随机序列内部所有的子序列都应该是随机的,子序列满足随机序列的各种特性;
4.)不可预测性,包括不可向后预测和向前预测;
5.)不可重复性,即使使用相同的生成手段,也不会生成相同的随机序列;
6.)目前已经发布的随机序列测试集合有:NIST SP800-22,FIPS 140-1,-2.也就是说我们认为只要通过FIPS 140或者SP800-22检测认证的随机序列,那么我们就认为是随机序列,符合随机序列特性.。
在本发明中使用经过FIPS检测的CryptGenRandom函数和dev/random函数生成。
设备信息,设备信息包括是能够标识设备特性的编号信息组成,如IP地址,MAC地址,硬盘卷轴等,IP地址理论上可以作为一台计算机的唯一编号,MAC地址也可以作为一个设备的唯一标识,硬盘卷轴等设备信息,这些信息在本发明中使用SHA1哈希算法编码成8个字节数据。
时间信息,由当前系统时间,时间调整参数和时间戳调整参数组成。
图1为本发明一个实施例的跨平台的互联文档ID生成方法流程图。如图所示,跨平台的互联文档ID生成方法包括:
步骤1:获取设备信息,获取的设备信息使用哈希算法(如sha1哈希算法、MD5哈希算法等)编码成第一设定数个(如8个)字节数据;
步骤2:获取第二设定数量个(如6个)字节真随机数作为第一随机数信息;
步骤3:获取操作系统状态信息,所述操作系统状态信息是当前状态下系统运行时的信息,使用哈希算法(如sha1哈希算法、MD5哈希算法等)编码成第三设定数量个(如8个)字节数据;
步骤4:获取第四设定数量个(如10个)字节真随机数作为第二随机数信息;
步骤5:获取时间信息,所述时间信息由当前系统时间、时间调整参数和时间戳调整参数组成,通过哈希算法(如sha1哈希算法、MD5哈希算法等)编码处理后保存在硬盘的一个文件中;
步骤6:将以上时间信息,设备信息,第一随机数信息,第二随机数信息,操作系统状态信息,用户数据信息,操作系统类型信息按照设定顺序组成一个字符串,生成最终的互联文档ID;
其中,步骤1至步骤5的顺序排列可调整。
进一步地,第一次获取设备信息后,将所获取的设备信息存储起来,以备下一次生成ID重复使用。
进一步地,如果设备信息获取不到,使用真随机数模拟设备信息。
进一步地,如果操作系统状态信息获取不到,使用真随机数模拟操作系统状态信息。
进一步地,当需要生成一个ID时,首先从所述文件中获取上一次的系统时间、时间调整参数和时间戳调整参数,如果获取的当前系统时间比上一次系统时间晚,则将当前的系统时间作为ID的一个部分;如果获取的当前系统时间和上一次系统时间一样,则调整时间调整参数,使当前系统时间和时间调整参数与上一次系统时间和时间调整参数不同;如果获取的当前系统时间比上一次系统时间早,则调整时间戳调整参数,使当前的系统时间和时间戳调整参数与上一次系统时间和时间戳调整参数不同。
本发明达到的有益效果包括几个方面:
使用同一套c/c++实现,生成的ID规格一致,可以在不同平台运行,达到跨平台特性;
使用文件的方式来存储时间信息,使得相同设备生成的ID的重复概率为0;
使用当前操作系统运行信息,设备信息,真随机数信息,使得不同设备生成的ID重复概率极低;
以上三点可以满足互联PDF的大数据需求,保证一个互联PDF文档对应一个ID,实现文档互联,人的互联和系统的互联,为以后互联PDF生态系统提供互联的基础保证。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (5)
1.一种跨平台的互联文档ID生成方法,其特征在于,包括:
步骤1:获取设备信息,获取的设备信息使用哈希算法编码成第一设定数量个字节数据;
步骤2:获取第二设定数量个字节真随机数作为第一随机数信息;
步骤3:获取操作系统状态信息,所述操作系统状态信息是当前状态下系统运行时的信息,使用哈希算法编码成第三设定数量个字节数据;
步骤4:获取第四设定数量个字节真随机数作为第二随机数信息;
步骤5:获取时间信息,所述时间信息由当前系统时间、时间调整参数和时间戳调整参数组成,通过哈希编码处理后保存在硬盘的一个文件中;
步骤6:将以上时间信息,设备信息,第一随机数信息,第二随机数信息,操作系统状态信息,用户数据信息,操作系统类型信息按照设定顺序组成一个字符串,生成最终的互联文档ID;
其中,步骤1至步骤5的顺序排列可调整。
2.根据权利要求1所述的跨平台的互联文档ID生成方法,其特征在于,第一次获取设备信息后,将所获取的设备信息存储起来,以备下一次生成ID重复使用。
3.根据权利要求1所述的跨平台的互联文档ID生成方法,其特征在于,如果设备信息获取不到,使用真随机数模拟设备信息。
4.根据权利要求1所述的跨平台的互联文档ID生成方法,其特征在于,如果操作系统状态信息获取不到,使用真随机数模拟操作系统状态信息。
5.根据权利要求1所述的跨平台的互联文档ID生成方法,其特征在于,当需要生成一个ID时,首先从所述文件中获取上一次的系统时间、时间调整参数和时间戳调整参数,如果获取的当前系统时间比上一次系统时间晚,则将当前的系统时间作为ID的一个部分;如果获取的当前系统时间和上一次系统时间一样,则调整时间调整参数,使当前系统时间和时间调整参数与上一次系统时间和时间调整参数不同;如果获取的当前系统时间比上一次系统时间早,则调整时间戳调整参数,使当前的系统时间和时间戳调整参数与上一次系统时间和时间戳调整参数不同。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610399667.2A CN107480151A (zh) | 2016-06-07 | 2016-06-07 | 一种跨平台的互联文档id生成方法 |
PCT/CN2017/000307 WO2017211077A1 (zh) | 2016-06-07 | 2017-04-19 | 一种跨平台的互联文档id生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610399667.2A CN107480151A (zh) | 2016-06-07 | 2016-06-07 | 一种跨平台的互联文档id生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107480151A true CN107480151A (zh) | 2017-12-15 |
Family
ID=60578363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610399667.2A Pending CN107480151A (zh) | 2016-06-07 | 2016-06-07 | 一种跨平台的互联文档id生成方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107480151A (zh) |
WO (1) | WO2017211077A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109410314A (zh) * | 2018-04-28 | 2019-03-01 | 武汉思普崚技术有限公司 | 基于三维空间的拓扑结构动态渲染的方法及装置 |
CN112383381A (zh) * | 2020-10-30 | 2021-02-19 | 刘锋 | 适应万物互联的编码方法、装置和电子设备 |
CN116823141A (zh) * | 2023-04-25 | 2023-09-29 | 广东企企通科技有限公司 | 付款数据处理方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1920823A (zh) * | 2005-08-25 | 2007-02-28 | 富士施乐株式会社 | 图像处理装置与其方法以及存储图像处理程序的存储媒体 |
US8136025B1 (en) * | 2003-07-03 | 2012-03-13 | Google Inc. | Assigning document identification tags |
CN102768673A (zh) * | 2012-06-12 | 2012-11-07 | 上海方正数字出版技术有限公司 | 一种可扩展的xml数据节点标识号码的编码方法及装置 |
JP2013037642A (ja) * | 2011-08-11 | 2013-02-21 | Canon Inc | 文書生成システム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005624B (zh) * | 2015-07-31 | 2018-05-08 | 天脉聚源(北京)传媒科技有限公司 | 一种生成索引文档id的方法及装置 |
-
2016
- 2016-06-07 CN CN201610399667.2A patent/CN107480151A/zh active Pending
-
2017
- 2017-04-19 WO PCT/CN2017/000307 patent/WO2017211077A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8136025B1 (en) * | 2003-07-03 | 2012-03-13 | Google Inc. | Assigning document identification tags |
CN1920823A (zh) * | 2005-08-25 | 2007-02-28 | 富士施乐株式会社 | 图像处理装置与其方法以及存储图像处理程序的存储媒体 |
JP2013037642A (ja) * | 2011-08-11 | 2013-02-21 | Canon Inc | 文書生成システム |
CN102768673A (zh) * | 2012-06-12 | 2012-11-07 | 上海方正数字出版技术有限公司 | 一种可扩展的xml数据节点标识号码的编码方法及装置 |
Non-Patent Citations (1)
Title |
---|
刘浩: "MongoDB文档(Document)全局唯一ID的设计思路", 《HTTPS://WWW.CNBLOGS.COM/LIUHAO/ARCHIVE/2011/12/01/2270649.HTML》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109410314A (zh) * | 2018-04-28 | 2019-03-01 | 武汉思普崚技术有限公司 | 基于三维空间的拓扑结构动态渲染的方法及装置 |
CN112383381A (zh) * | 2020-10-30 | 2021-02-19 | 刘锋 | 适应万物互联的编码方法、装置和电子设备 |
CN112383381B (zh) * | 2020-10-30 | 2023-08-25 | 刘锋 | 适应万物互联的编码方法、装置和电子设备 |
CN116823141A (zh) * | 2023-04-25 | 2023-09-29 | 广东企企通科技有限公司 | 付款数据处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017211077A1 (zh) | 2017-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9384232B2 (en) | Confirming data consistency in a data storage environment | |
CN108292351A (zh) | 使用诸如以时间为中心的默克尔散列树之类的散列树的数据验证方法和系统 | |
CN102045356B (zh) | 一种面向云存储的可信存储验证方法和系统 | |
US20170163413A1 (en) | System and Method for Content Encryption in a Key/Value Store | |
US11157652B2 (en) | Obfuscation and deletion of personal data in a loosely-coupled distributed system | |
DE102016102424A1 (de) | Auf Inhalt beruhende Hardware-Sicherheitsmodulzuweisung zu virtuellen Maschinen | |
CN108829899B (zh) | 数据表储存、修改、查询和统计方法 | |
CN107480151A (zh) | 一种跨平台的互联文档id生成方法 | |
CN104573557B (zh) | 云端数据储存方法及装置和云端数据还原方法 | |
Apostal et al. | Password recovery using MPI and CUDA | |
US20110154015A1 (en) | Method For Segmenting A Data File, Storing The File In A Separate Location, And Recreating The File | |
CN111611622A (zh) | 基于区块链的文件存储方法和电子设备 | |
CN106712928A (zh) | 基于大数据彩虹表的解密方法和装置 | |
CN107480111A (zh) | 一种互联文档的自动填报方法 | |
CN112181307A (zh) | 基于区块链的分布式数据冗余存储方法和电子设备 | |
KR101428649B1 (ko) | 맵 리듀스 기반의 대용량 개인정보 암호화 시스템 및 그의 동작 방법 | |
CN104809256A (zh) | 一种数据去重方法及系统 | |
CN112182112A (zh) | 基于区块链的分布式数据动态存储方法和电子设备 | |
Du et al. | Deduplicated disk image evidence acquisition and forensically-sound reconstruction | |
CN111951112A (zh) | 基于区块链的智能合约执行方法、终端设备和存储介质 | |
US11621850B2 (en) | Distributed ledger management method, distributed ledger system, and node | |
CN113923218B (zh) | 编解码插件分布式部署方法、装置、设备及介质 | |
CN112181974B (zh) | 标识信息分配方法、系统及存储设备 | |
US11170000B2 (en) | Parallel map and reduce on hash chains | |
CA3173947A1 (en) | Method and device for generating random numbers |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171215 |