C++ n值UUID生成器,可重用ID
我需要一个简单的UUID生成器。 此实例的ID必须是唯一的。 另一个要求是,它有n个哈希同时存在,并且是可发布的。 我不知道这是否符合UUID的概念。 我曾经考虑过使用pop和push实现一个具有n个值的堆栈,但这种做法在内存方面似乎不太好 使用基于随机的UUID(不包括加密的UUID)是不够的,因为如果运气不好,可能会有2个匹配的ID,它们不能被接受(尽管有不可忽略的机会),因为这应该在生产环境中使用。我强烈推荐使用库,这是一个提振候选者——我们正在我们的一个项目中使用它,而且效果很好。链接到v13。此版本+其他版本可位于 例如:C++ n值UUID生成器,可重用ID,c++,qt,unique,C++,Qt,Unique,我需要一个简单的UUID生成器。 此实例的ID必须是唯一的。 另一个要求是,它有n个哈希同时存在,并且是可发布的。 我不知道这是否符合UUID的概念。 我曾经考虑过使用pop和push实现一个具有n个值的堆栈,但这种做法在内存方面似乎不太好 使用基于随机的UUID(不包括加密的UUID)是不够的,因为如果运气不好,可能会有2个匹配的ID,它们不能被接受(尽管有不可忽略的机会),因为这应该在生产环境中使用。我强烈推荐使用库,这是一个提振候选者——我们正在我们的一个项目中使用它,而且效果很好。链接到
#include <string>
#include <iostream>
#include <UUID/boost/uuid/uuid.hpp>
using namespace std;
/*! returns a filename which is a uuid + .dat*/
std::string generate_filename()
{
boost::uuids::uuid_generator gen;
boost::uuids::uuid u = gen();
return u.to_string()+ ".dat";
}
void main()
{
for(int i = 0; i < 10; i++)
cout << generate_filename() << endl;
}
#包括
#包括
#包括
使用名称空间std;
/*! 返回一个文件名,该文件名为uuid+.dat*/
std::字符串生成_文件名()
{
boost::uuids::uuid_生成器gen;
boost::uuids::uuid u=gen();
将u.返回到_string()+“.dat”;
}
void main()
{
对于(int i=0;i<10;i++)
cout我强烈推荐这个库,它是一个增强候选库-我们正在我们的一个项目中使用它,它工作得很好。链接到v13。这个版本+其他版本可以在
例如:
#include <string>
#include <iostream>
#include <UUID/boost/uuid/uuid.hpp>
using namespace std;
/*! returns a filename which is a uuid + .dat*/
std::string generate_filename()
{
boost::uuids::uuid_generator gen;
boost::uuids::uuid u = gen();
return u.to_string()+ ".dat";
}
void main()
{
for(int i = 0; i < 10; i++)
cout << generate_filename() << endl;
}
#包括
#包括
#包括
使用名称空间std;
/*!返回uuid+.dat文件名*/
std::字符串生成_文件名()
{
boost::uuids::uuid_生成器gen;
boost::uuids::uuid u=gen();
将u.返回到_string()+“.dat”;
}
void main()
{
对于(int i=0;i<10;i++)
cout通用唯一标识符(UUID)/全局唯一标识符(GUID)
生成唯一ID的问题可以分解为空间上的唯一性和时间上的唯一性,当组合起来时,目标是生成全局唯一序列
UUID被正式明确定义为ISO-11578标准的一部分,其他规范也存在,如RFC 4122、ITU-T Rec.X.667
OSSP uuid()是一个用于ISO C、ISOC++、Perl和PHP的API,以及相应的CLI,用于生成DCE 1.1、ISO/IEC 11578:1996和符合RCF4122的通用唯一标识符(UUID)。它支持版本1(基于时间和节点的)的DCE 1.1变体UUID、版本3(基于名称、MD5)、版本4(基于随机数)和版本5。(基于名称,SHA-1)。UUID是128位数字,在空间和时间上具有很高的唯一性,并且在计算上难以猜测。它们是全局唯一标识符,可以在本地生成,无需联系全球注册机构。它是MIT/X Consortium许可下的开源
我在报告中还作了一些进一步的解释
在windows上检查RPC库(请参见#include“Rpcdce.h”),它具有生成UUID的函数。通用唯一标识符(UUID)/全局唯一标识符(GUID)
生成唯一ID的问题可以分解为空间上的唯一性和时间上的唯一性,当组合起来时,目标是生成全局唯一序列
UUID被正式明确定义为ISO-11578标准的一部分,其他规范也存在,如RFC 4122、ITU-T Rec.X.667
OSSP uuid()是一个用于ISO C、ISOC++、Perl和PHP的API,以及相应的CLI,用于生成DCE 1.1、ISO/IEC 11578:1996和符合RCF4122的通用唯一标识符(UUID)。它支持版本1(基于时间和节点的)的DCE 1.1变体UUID、版本3(基于名称、MD5)、版本4(基于随机数)和版本5。(基于名称,SHA-1)。UUID是128位数字,在空间和时间上具有很高的唯一性,并且在计算上难以猜测。它们是全局唯一标识符,可以在本地生成,无需联系全球注册机构。它是MIT/X Consortium许可下的开源
我在报告中还作了一些进一步的解释
在windows上检查RPC库(请参见#include“Rpcdce.h”)它具有生成UUID的功能。是否想详细说明您在这里需要什么?我至少无法理解您所说的一半。还要注意,GUI实际上在生产环境中使用,尽管它们可能会发生冲突,但可能性大于0。从长远来看:即使服务器只为所有用户生成UUID它的生命,更大的可能性是它将被流星湮灭。好吧,谢谢你的时间。这是unix下的/dev/random给出的吗?我读了很多文章,它们并不像预期的那样随机,而我第一次尝试使用的quuid使用的是那个(据我所知)。感谢您的回复。通过一些硬件解决方案和运行从不同来源收集更多熵的守护进程,您可以使/dev/random变得更好。如果您关心熵池,我建议您使用类似于熵键中的设备:介意详细说明您到底需要什么吗?我至少无法理解您需要的一半'你是说。还要注意的是,GUI实际上是在生产环境中使用的,尽管它们可能发生冲突的可能性大于0。从长远来看:即使服务器一生只生成UUID,它也有更大的可能性被流星湮灭。好吧,谢谢你的时间。这是用/dev/r给出的吗我读了很多文章,它们并不像我想象的那样随机,而我第一次尝试使用的quuid使用的就是那个(据我所知)。感谢您的回复。通过一些硬件解决方案和运行从不同来源收集更多熵的守护进程,您可以使/dev/random变得更好。如果您关心熵池,我建议使用类似于熵键中的设备:这会生成基于随机的v4 UUID,这并不比quid::createUuid()更好
。所以我