标签: guid

TypeScript GUID类?

有没有人知道TypeScript中的一个好的,可靠的C#实现GUID(UUID)?

可以自己做,但想到如果其他人以前做过,我会节省时间.

uuid guid typescript

55
推荐指数
2
解决办法
8万
查看次数

GUID的安全性是多么安全?

不久之前,我在一个用户可以购买门票的网络应用程序上工作.由于我们客户的流程的运作方式,您购买后实际获得的是一个带有票号的URL.

这些是在中东购买房产的门票,每张门票的价值可能在300万美元左右.显然抛出顺序整数本来是个坏主意.我们使用GUID,因为它们基本上是不可知的,但我的问题是:它们足够安全吗?

据我所知,GUIDs .NET产生的是完全伪随机的(除了一些非变量位).但是,我不知道使用什么算法来生成它们.

MSDN文档告诉我们Random快速且不安全,并且RNGCryptoServiceProvider速度慢且安全.也就是说,假设有人可以投入足够的努力来预测结果Random,但不是RNGCryptoServiceProvider.

如果您看到足够长的GUID序列,是否可以预测期货?如果是这样,你需要看多少?

[在我们的特殊情况下,之后会进行身体安全检查 - 您必须出示用于购买机票的护照 - 所以如果有人猜到别人的GUID 就不会糟糕,所以我们没有出汗当时.使用GUID作为数据库密钥的便利性使其成为一种有用的数据类型.]


编辑:

所以答案是"不够".

使用下面的0xA3的答案,并跟随他链接的问题的链接,以下代码将生成一个加密随机GUID,该GUID由RFC 4122的第4.4节有效:

static Guid MakeCryptoGuid()
{
    // Get 16 cryptographically random bytes
    RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
    byte[] data = new byte[16];
    rng.GetBytes(data);

    // Mark it as a version 4 GUID
    data[7] = (byte)((data[7] | (byte)0x40) & (byte)0x4f);
    data[8] = (byte)((data[8] | (byte)0x80) & (byte)0xbf);

    return new Guid(data);
}
Run Code Online (Sandbox Code Playgroud)

这比GUID产生的速度慢得多 …

.net cryptography guid

54
推荐指数
3
解决办法
1万
查看次数

用于Visual Studio解决方案文件的项目GUID是什么?

我在一个Visual Studio(2008)解决方案中有多个项目.
我刚刚发现每个项目都使用相同的GUID,因此在解决方案文件中它看起来像这样:

Project("{FAE04EC0-F103-D311-BF4B-00C04FCBFE97}") = "Pro1", "Pro1\Pro1.csproj", "{...}"
Project("{FAE04EC0-F103-D311-BF4B-00C04FCBFE97}") = "Pro2", "Pro2\Pro2.csproj", "{...}"
Run Code Online (Sandbox Code Playgroud)

我是否必须更改这些GUID,以便它们是唯一的以及它们用于什么?

uuid guid projects-and-solutions visual-studio

52
推荐指数
4
解决办法
5万
查看次数

如何在C#中声明一个常量Guid?

是否有可能在C#中声明一个恒定的Guid?

我明白我可以声明一个static readonly Guid,但是有一种语法允许我写const Guid吗?

c# guid const constants compile-time-constant

51
推荐指数
5
解决办法
4万
查看次数

为什么.NET GUID中有破折号?

为什么.NET GUID中有破折号?在GUID的大多数实现中是否存在破折号,或者它只是Microsoft的东西?

签,

741ecf77-9c92-4435-8e6b-85975bd13452

.net uuid guid

50
推荐指数
6
解决办法
9427
查看次数

如何将GUID转换为C#中的字符串?

我是C#的新手.

我知道在vb.net中,我可以这样做:

Dim guid as string = System.Guid.NewGuid.ToString
Run Code Online (Sandbox Code Playgroud)

在C#中,我正在努力做到

String guid = System.Guid.NewGuid().ToString;
Run Code Online (Sandbox Code Playgroud)

但我得到一个" 无法将方法组'ToString'转换为非委托类型'字符串'.你打算调用该方法吗?" 错误.

c# string guid

50
推荐指数
8
解决办法
13万
查看次数

性能 - 使用Guid对象或Guid字符串作为Key

当使用a Guid作为a 的索引时Dictionary,使用该Guid对象或Guid的字符串表示更好吗?

我刚刚重构了一些使用字符串来使用该对象的代码,因为new Guid()遍布整个地方都有调用.但这让我想知道性能问题可能是什么.(这些集合相当小,但它们会被多次迭代.)

c# performance guid

49
推荐指数
1
解决办法
2万
查看次数

.NET 3.5中是否有GUID.TryParse()?

UPDATE

Guid.TryParse在.NET 4.0中可用

结束更新

显然,.NET CLR 2.0中没有公共GUID.TryParse().

所以,我正在寻找正则表达式[也称为google搜索一个],每次我发现其中有一个激烈的论点在评论部分关于RegEx A不起作用,使用RegEx B.然后有人会写Regex C yadda yadda

所以无论如何,我决定做的就是这个,但我对它感到很难过.

public static bool IsGuid (string possibleGuid) {

    try {
      Guid gid = new Guid(possibleGuid);
      return true;    
    } catch (Exception ex) {
      return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

显然我并不喜欢这个,因为从第一天开始我一直在钻我,以避免抛出异常,如果你可以防范代码.

有谁知道为什么.NET Framework中没有公共的Guid.TryParse()?

有没有人有一个真正的正则表达式,适用于所有GUID?

c# asp.net guid tryparse

49
推荐指数
5
解决办法
3万
查看次数

System.Guid.NewGuid()是如何随机的?

我知道这可能听起来像一个毫无意义的问题,但是听我说...

我基本上想知道我是否可以信任GUID来生成一个在100%的时间内都是唯一且无法预测的值.

我基本上是在网站的登录系统上滚动,并想知道GUID是否足够安全用于会话cookie.

在评估答案时,将非常感谢有关如何生成GUID的任何背景知识.

感谢您提供重复问题的链接,但我的问题仅针对.Net框架.

.net random guid

48
推荐指数
3
解决办法
3万
查看次数

Uniqueidentifier(GUID)上的聚合函数

假设我有下表:

category | guid
---------+-----------------------
   A     | 5BC2...
   A     | 6A1C...
   B     | 92A2...
Run Code Online (Sandbox Code Playgroud)

基本上,我想做以下SQL:

SELECT category, MIN(guid)
  FROM myTable
 GROUP BY category
Run Code Online (Sandbox Code Playgroud)

它不一定是MIN.我只想返回每个类别的一个 GUID.我不在乎哪一个.不幸的是,SQL Server不允许在GUID上使用MIN或MAX.

当然,我可以将guid转换为varchar,或者创建一些嵌套的TOP 1 SQL,但这似乎是一个丑陋的解决方法.我错过了一些优雅的解决方案吗?

sql sql-server guid aggregate uniqueidentifier

47
推荐指数
3
解决办法
3万
查看次数