导航:首页 > 编程大全 > uuid生成工具

uuid生成工具

发布时间:2023-03-28 00:49:08

① 如何快速生成 UUID GUID

通用的GUID的结构如下

typedef struct _GUID {
DWORD Data1;
WORD Data2;
WORD Data3;
BYTE Data4[8];
} GUID;

举一个例子:
假设一个GUID的格式是这样的 6B29FC40-CA47-1067-B31D-00DD010662DA

其中Data1 是32位,可以看做8个四位十六进制数,对应于上面的6B29FC40

其中Data2 是16位,可以看做4个四位十六进制数,对应于上面的CA47
其中Data3 是16位,可以看做4个四位十六进制数,对应于上面的1067
其中Data4 比较特殊,是8个字节也就可以看做16个四位十六进制数
取其Data4[0],Data4[1]来组成4个四位十六进制数,对应于上面的B31D
取其Data4[2],Data4[3]来组成4个四位十六进制数,对应于上面的00DD
取其Data4[4],Data4[5]来组成4个四位十六进制数,对应于上面的0106
取其Data4[6],Data4[7]来组成4个四位十六进制数,对应于上面的62DA

*注意:四位十六进制数对应一个GUID字符。

在Windows下提供了一个函数可以生成一个GUID。需要使用的头文件 "objbase.h",需要链接的库ole32.lib。
HRESULT CoCreateGuid(GUID * pguid);

在Linux下首先需要下载到相应的库文件和头文件
如果是Debian用户可以方便的通过apt命令来获取相关资源。
apt-get install uuid-dev

安装完成后会发现
在/usr/include/ 下有一个uuid文件夹,其中则包含了uuid.h头文件。
在/usr/lib/ 下有几个libuuid*的链接库文件,包括静态和动态链接库。

打开uuid.h你会发现有一个uuid_generate(uuid_t out) 的函数声明。我们可以通过调用这个函数来生成UUID。
uuid_generate(reinterpret_cast<unsigned char *>(&guid));

生成GUID是不是很简单!是的,因为生成的算法不用我们去实现,我们是站在前人的肩膀所以我们要感谢他们。

下面给出一个WINDOWS和LINUX下通用的程序

// uuid_test.cpp
#include <string>
#include <stdio.h>
#include <iostream>
#include "uuid_test.hpp"

#ifdef WIN32
#include <objbase.h>
#else
#include <uuid/uuid.h>
#endif

using namespace std;
namespace ChinuxTeam
{
GUID CreateGuid()
{
GUID guid;
#ifdef WIN32
CoCreateGuid(&guid);
#else
uuid_generate(reinterpret_cast<unsigned char *>(&guid));
#endif
return guid;
}

std::string GuidToString(const GUID &guid)
{
char buf[64] = {0};
#ifdef __GNUC__
snprintf(
#else // MSVC
_snprintf_s(
#endif
buf,
sizeof(buf),
"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
guid.Data1, guid.Data2, guid.Data3,
guid.Data4[0], guid.Data4[1],
guid.Data4[2], guid.Data4[3],
guid.Data4[4], guid.Data4[5],
guid.Data4[6], guid.Data4[7]);
return std::string(buf);
}
}

对应的头文件
// uuid_test.hpp"

#include <string>
#include <stdio.h>
#include <iostream>

typedef struct _GUID
{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID, UUID;

namespace ChinuxTeam
{
GUID CreateGuid();
std::string GuidToString(const GUID &guid);
}// namespace ChinuxTeam

最后一个 GuidToString()稍微解释一下,作用就是把GUID以固定的格式输出到标准string字符串中,
根据编译器的不同调用分别调用了不同的字符串打印函数。

另外附一个简单的测试函数
#include <string>
#include <stdio.h>
#include <iostream>

#ifdef WIN32
#include "objbase.h"
#else

typedef struct _GUID
{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID, UUID;

#endif

namespace ChinuxTeam{
GUID CreateGuid();
std::string GuidToString(const GUID &guid);
}

运行后会生成一个GUID并打印到标准输出的控制台上。

② 怎样使用微信小程序的第三方js

方法一:rpn.js:使用rpn.js实现eval函数功能
操作链接:网页链接

方法二:
(1)使用Underscore.js:操作链接:网页链接

(2)使用Immutable.js:操作链接:网页链接

(3)使用UUID、Base64、Chance:操作链接:网页链接

扩展微信小程序框架功能(1)——Promise

ES6 对 Promise 有了原生的支持,但微信开发者工具更新版本(0.11.112200)后, 移除了开发者工具对 ES6 中Promise 特性原生的支持, 需要引入第三方的 Promise 库。


扩展微信小程序框架功能(2)——Generator
Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。

扩展微信小程序框架功能(3)——函数功能增强
Underscore.js 和 Lodash 是最常用的JavaScript库。

扩展微信小程序框架功能(4)——Immutable.js
Immutable.js 是 Facebook 开发的不可变数据集合。Immutable
Data(不可变数据)一旦创建就不能被修改。通过使用Immutable
Data,可以更容易的处理缓存、回退、数据变化检测等问题,应用开发更简单。

扩展微信小程序框架功能(5)——Rex
Rex 是 JavaScript 状态容器,提供可预测化的状态管理。

扩展微信小程序框架功能(6)—日期时间
Moment.js是一个JavaScript的日期、时间处理工具类,其对于JavaScript的日期时间处理功能非常强悍和全面。可以用在浏览器环境中使用,也可以在Node.js中。

扩展微信小程序框架功能(7)——正则表达式
XRegExp 是一个开源的 JavaScript库,提供一个参数化、可扩展的支持各种浏览器的正则表达式的实现库,支持附加语法、标志以及方法。

扩展微信小程序框架功能(8)——Xml处理
x2js是一个 实现 XML 与 JavaScript 对象之间相互转换的工具库。

扩展微信小程序框架功能(9)——加解密
node-uuid可以快速地生成符合规范 的 UUID。js-base64可以实现Base64编码和解码。crypto-js可以非常方便地在 JavaScript 进行加解密。

扩展微信小程序框架功能(10)——测试辅助
Chance是一个 JavaScript 随机数生成工具。Mock.js可以生成随机数据,拦截 Ajax 请求。

方法三:moment
操作链接:网页链接

③ 什么是SSIDand UUID

看似一样,其实不一样,很让人混淆的,一个ESS的多个AP可分属于不同的SSID,故SSID不应该称为ESSID。SSID(Service Set Identifier),用来区分不同的网络,最多可以有32个字符,无线网卡设置了不同的SSID就可以进入不同网络,SSID通常由AP广播出来,通过XP自带的扫描功能可以相看当前区域内的SSID。出于安全考虑可以不广播SSID,此时用户就要手工设置SSID才能进入相应的网络。简单说,SSID就是一个局域网的名称,只有设置为名称相同SSID的值的电脑才能互相通信。 禁用SSID广播 通俗地说,SSID便是你给自己的无线网络所取的名字。需要注意的是,同一生产商推出的无线路由器或AP都使用了相同的SSID,一旦那些企图非法连接的攻击者利用通用的初始化字符串来连接无线网络,就极易建立起一条非法的连接,从而给我们的无线网络带来威胁。因此,笔者建议你最好能够将SSID命名为一些较有个性的名字。 无线路由器一般都会提供“允许SSID广播”功能。如果你不想让自己的无线网络被别人通过SSID名称搜索到,那么最好“禁止SSID广播”。你的无线网络仍然可以使用,只是不会出现在其他人所搜索到的可用网络列表中。 小提示:通过禁止SSID广播设置后,无线网络的效率会受到一定的影响,但以此换取安全性的提高,笔者认为还是值得的。 测试结果:由于没有进行SSID广播,该无线网络被无线网卡忽略了,尤其是在使用Windows XP管理无线网络时,达到了“掩人耳目”的目的。UUID(Universal Unique Identifier)是这几单词的简写罢了,我们就译它全球唯一标识这个名称。它真的永远能唯一标识吗?它是如何生成的呢?生成的工具有哪些呢?是由何而来呢?下面我来谈一下我的认识。 能永远唯一标识吗?对于这个问题。我们还是先来认识一下UUID,UUID其实就是一个字符串,它是一个有且仅有128位的字符串,也就是则歼团16个字节了,如uuid(c37c9ab7-9fc5-4ecb-9e9f-71ae06156f74)。它的表现形式(就是说写法)上有几种。表示的字符是0~f。共有32个这样的字符,那么32的16次方可供使用,所以肯定不能永远的唯一,随着发展肯定会有更好表示了。 生成的工具有哪些呢?就Visual studio 这个集成开发环境,它带了两个生成UUID的工具,一个是界面形式的,一个是CONSOLE形式的。可以VS安装目录下的BIN文件夹下找到这两个工具,GUIDGEN.exe这个带有界面形式的工具,它可以根据你的要求生成指定格式的UUID。还有一个UUIDGEN.exe这个是CONSOLE形式的生成工具,它可以直接输出UUID到一个文件中去。看看帮助都会用。这里不详述。 如何生成的呢?很多是根据计算机上的网卡地址(不同计算机上的网卡地址是唯一的),再根据生成的时间来产生的(这就本机上生成的GUID不会重孙橘复)。网卡地址占用48位,而时间标戳占用60位。或许有的生成UUID的计算机没有网卡,那就会用另一套算法来生成了。就上面介绍的这改枣两个工具来说它们的生成都会调用COM库中的CoCreateGuid这个函数,这个函数最终又调用UuidCreate函数来生这个UUID标识串。 UUID最初是由OSF(开放软件基金会提出来的)当时也出于DCE的需求而定义。它是用来标识一个唯一的被调用者。

④ 电脑uuid可以当windows激活码

uuid是生成电脑唯一识别码工具,uuid它和windows激活码互不相干。
如果你要安装win8专业版//企业版网上现在就有在线联网激活密钥MAK

⑤ 怎么使用kettle进行增量数据的抽取

使用工具: 
kettle

首先需要考虑的问题是不可能是全量进行数据的拷贝,数据量如此庞大! 
那么就得考虑增量,何为增量去网络。。哈哈哈

至于如何增量抽取数据,有很多种办法,我这里示范的是通过时间去增量抽取(因为刚好别人的库中每条记录的时间记录的都相当详细,所以我认为这个比较好)。

首先创建好实例库:

SQL> desc timejob; Name Type Nullable Default Comments --------- ------------ -------- ------- -------- UUID VARCHAR2(36) Y BEGINTIME DATE Y

1

2

3

4

5

SQL> desc timejob_bak; Name Type Nullable Default Comments --------- ------------ -------- ------- -------- UUID VARCHAR2(36) Y BEGINTIME DATE Y

1

2

3

4

5

kettle中有自动生成UUID的功能,所以直接拿过来耍,为了简洁方便,字段使用比较少。 
首先利用kettle自动生成测试数据: 


主要生成UUID和当前系统时间到timejob表中(每隔2s执行一次),我们后续的操作都是对这张表中的数据进行一个备份。

下面第二步就是抽取该表中的数据到一个备份表中,timejob_bak。 


这里由于是我第一次操作,比较简单,就直接上图了。。

获得上次操作时间和系统时间存到变量中: 
 
这里的开始时间是通过表数据选项获得上一次操作的最终结束时间,以作为我此次增量抽取的开始时间。第二个变量是获得系统的当前时间。

根据时间抽取timejob表中的数据: 

获取变量的写法: 

此处获取的变量就是上一步存入的变量,下面的抽取增量数据就是一个sql,从timejob表中抽取数据,存数据就是一个表输出。 
抽取数据sq

阅读全文

与uuid生成工具相关的资料

热点内容
iphone4s支持的视频分辨率 浏览:123
wps图表链接文件不可用 浏览:426
官方网购节什么网站 浏览:635
数控车床倒角30度如何编程 浏览:806
预算执行数据怎么来的 浏览:614
java文件同步服务器 浏览:1000
截图保存为哪个文件夹 浏览:101
微云文件无法打开 浏览:373
越狱文件管理器哪个好用 浏览:947
桌面文件可以保存在哪里 浏览:136
世界之窗修改密码 浏览:555
系统文件巨大 浏览:138
重点毕业生数据采集有什么用 浏览:341
手机抖音上的app在哪里 浏览:215
thinkpad装win7教程 浏览:793
2012文件服务器资源管理器 浏览:459
纯净版win1032位改64 浏览:413
农产品行业融资主要分析哪些数据 浏览:601
华为微信不上网络设置 浏览:727
查看qq聊天记录 浏览:931

友情链接