我需要从Python生成唯一的64位整数.我已经检查了UUID模块.但它生成的UUID是128位整数.所以那不行.
你知道在Python中生成64位唯一整数的方法吗?谢谢.
NFC标签是否真的相互独特,至少在他们的序列号中是这样?我们可以依赖这样一个事实:没有2个NFC标签可以拥有相同的序列号吗?我对此持高度怀疑态度,因为那里有(并且会有更多)NFC标签,我认为没有人控制连续剧......
我问的原因是我正在开发一个使用NFC标签的基于密钥的系统.我不需要写标签,我基本上只需要他们的序列号.但我需要它们才能真正独一无二.
此外,我想知道是否可以克隆序列号(我知道标签的内容总是可以读取和克隆,但是可以编程另一个标签以具有完全相同的ID /序列吗?)
我们的iOS应用程序适用于特定用户.因此,我们使用设备唯一标识符进行用户识别.这种方法适用于iOS 6,因为我们每次都获得相同的值.
NSString *strUniqueIdentifier = [[UIDevice currentDevice] uniqueIdentifier];
Run Code Online (Sandbox Code Playgroud)
在iOS 7中,上述方法返回不同的值,我们在用户识别方面遇到问题.iOS 7提供以下备用.
NSUUID *oNSUUID = [[UIDevice currentDevice] identifierForVendor];
[strApplicationUUID setString:[oNSUUID UUIDString]];
Run Code Online (Sandbox Code Playgroud)
我们替换uniqueIdentifier了identifierForVendor,并创建了一个Ad-hoc构建.然后,我们在iOS 7和iOS 6设备上安装了构建版本.到目前为止,在iOS 7中,我们每次都获得相同的值,但iOS 6 每次删除并重新安装应用程序时都会给出不同的值.
问题:我必须为每个联网客户端提供唯一ID,例如:
一点点解释和一些背景故事:
这个问题基本上是古老的问题,也触及了软件拷贝保护的主题,因为这里提到了该领域中使用的一些机制.在这一点上我应该清楚,我不是在寻找一种复制保护方案.请继续阅读.:)
我正在开发一个应该在本地网络中工作的客户端 - 服务器软件.我必须解决的一个问题是识别网络中的每个唯一客户端(而不是问题),以便我可以将某些属性应用于每个特定客户端,在特定部署的生命周期中保留并强制执行这些属性.客户.
在我寻找解决方案时,我发现了以下情况:
这种问题的明显选择是找出BIOS标识符(不过100%确定这是否通过相同的主板型号是唯一的),因为这是我唯一可以依赖的不重复,通过克隆传输,并且不能改变(至少不能通过使用一些用户空间程序).其他一切都失败了,因为要么不可靠(MAC克隆,任何人?),要么太苛刻(就其对配置变化过于敏感而言).
我想问的一个子问题是,我是否正确地进行了架构方面的工作?也许有一个更好的工具来完成我必须完成的任务......
我想到的另一种方法类似于握手机制,其中服务器维护一个连接的客户端ID的内部查找表(在任何给定时刻甚至可以完全基于软件和非唯一),并告诉客户端如果在连接时提供重复的ID,则在握手期间提供不同的ID.遗憾的是,这种方法不能很好地满足在生命周期内将属性绑定到特定客户端的要求之一.
我知道stackoverflow中有很多类似的问题,如下所示:
......还有几十个,我研究过它们.
问题是一些已接受的答案已将MAC地址建议为唯一标识符,这完全不正确.其他一些答案建议使用各种组件的组合,这似乎更合乎逻辑.但是,在使用组合的情况下,应该考虑哪些组件自然不可能经常更换.几天前,我们为软件许可问题开发了一个密钥生成器,我们使用CPUID和MAC的组合来唯一地识别一台Windows PC,直到实际测试我们认为我们的方法已经足够好了.具有讽刺意味的是,当我们进行测试时,我们发现有三台计算机使用我们的密钥生
那么,真的有任何方法可以唯一地识别任何计算机吗?现在我们只需要让我们的密钥生成器在windows pc上运行.使用c#的某种方式(如果可能的话)会很好,因为我们的系统是在.net上开发的.
更新:
很抱歉造成一些混乱和明显错误的警报.我们在检索HW信息的方法中发现了一些不正确之处.主要是我想删除这个问题,因为现在我自己的困惑已经消失,我确实认为两个或更多组件的组合足以识别计算机.然而,然后我决定保留它,因为我认为我应该澄清导致问题的原因,因为同样的事情可能会伤害其他人.
这就是我们正在做的事情(不包括其他代码):
我们使用getManagementInfo函数来检索MAC和处理器ID
private String getManagementInfo(String StrKey_String, String strIndex)
{
String strHwInfo = null;
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + StrKey_String);
foreach (ManagementObject share in searcher.Get())
{
strHwInfo += share[strIndex];
}
}
catch (Exception ex)
{
// show some error message
}
return strHwInfo;
}
Run Code Online (Sandbox Code Playgroud)
然后在需要的地方我们使用该函数来检索MAC地址
string strMAC = getManagementInfo("Win32_NetworkAdapterConfiguration", "MacAddress");
Run Code Online (Sandbox Code Playgroud)
并检索ProcessorID
string strProcessorId = getManagementInfo("Win32_Processor", "ProcessorId");
Run Code Online (Sandbox Code Playgroud)
此时,strMAC …
我写websocket聊天.如何为用户生成唯一ID?
现在我用这个代码:
id = new DateTime.now().millisecondsSinceEpoch;
Run Code Online (Sandbox Code Playgroud)
有没有更整洁的解决方案?
我正在我的应用程序中创建一堆程序化View的.因为看起来它们默认都是一样的id=-1.为了使用它们,我需要生成唯一的id.
我已经尝试了几种方法 - 随机数生成和基于当前时间,但无论如何没有100%保证不同的视图将具有不同的ID
只是想知道是否有更可靠的方法来生成独特的方法?可能有特殊的方法/类?
我正在使用数据集插入从旧数据库转换的数据.要求是维护当前的Order_ID号码.
我尝试过使用:
SET IDENTITY_INSERT orders ON;
Run Code Online (Sandbox Code Playgroud)
这在我在SqlServer Management Studio中时有效,我能够成功
INSERT INTO orders (order_Id, ...) VALUES ( 1, ...);
Run Code Online (Sandbox Code Playgroud)
但是,它不允许我通过我在转换脚本中使用的数据集插入来执行此操作.看起来基本上是这样的:
dsOrders.Insert(oldorderId, ...);
Run Code Online (Sandbox Code Playgroud)
我也在这个过程中运行SQL(SET IDENTITY_INSERT命令为ON).我知道我一次只能对着一张桌子这样做而且我是.
我一直得到这个例外:
尝试向订单表中插入值时出现异常System.Data.SqlClient.SqlException:当IDENTITY_INSERT设置为OFF时,无法在表'orders'中为identity列插入显式值.
有任何想法吗?
更新
AlexS和AlexKuznetsov已经提到Set Identity_Insert是一个连接级别设置,但是,当我在SqlProfiler中查看SQL时,我注意到了几个命令.
SET IDENTITY_INSERT DEAL ONexec sp_reset_connectionexec sp_reset_connection但是命令之间总是存在,我相信这是Identity_Insert设置中的值丢失的原因.
有没有办法阻止我的数据集进行连接重置?
我目前正在研究移动设备Web应用程序,我想知道每个设备是否有某种可以通过浏览器检测到的唯一ID号.
目的是存储此号码,以便识别已访问过该站点的人员.
我正在使用蓝牙很多,当你检测到一个设备时,你可以存储某种mac地址,而我正在使用它作为Id编号,所以这是我的问题,是否有我可以从中检测到的一般ID号浏览器...?
谢谢.