相关疑难解决方法(0)

这是一个加密强大的 Guid 吗?

我正在考虑使用 Guid 作为网站的随机匿名访问者标识符(存储为 cookie 客户端大小和数据库服务器端),我想要一种生成 Guids 的加密方式(以便尽量减少碰撞的机会)。

为了记录,Guid 中有 16 个字节(或 128 位)。

这就是我的想法:

/// <summary>
/// Generate a cryptographically strong Guid
/// </summary>
/// <returns>a random Guid</returns>
private Guid GenerateNewGuid()
{
    byte[] guidBytes = new byte[16]; // Guids are 16 bytes long
    RNGCryptoServiceProvider random = new RNGCryptoServiceProvider();
    random.GetBytes(guidBytes);
    return new Guid(guidBytes);
}
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

编辑: 这将用于两个目的,访问者的唯一 ID 和购买的交易 ID(这将简要地作为查看/更新敏感信息所需的令牌)。

c# random guid

6
推荐指数
2
解决办法
1969
查看次数

Guid.NewGuid(); .NET Core中的幕后故事

昨天研究这个主题,我发现了几个关于如何最终生成GUID的有趣问题(例如这个).简单来说; 它似乎在COM 中Guid.NewGuid();调用CoCreateGuid,而COM又调用UuidCreateWindows RPC(此处此处的文档).

我发现自己在想; 当操作系统不是 Windows时,如果可能是.NET Core的情况,这是如何工作的,这是否会影响用于生成GUID 的"版本"算法(我理解为Windows上的版本4)?

c# uuid guid .net-core

6
推荐指数
1
解决办法
3114
查看次数

如何创建非重复随机数的数组

我在C#中有一个彩票应用程序,其中包含要绘制的数字的数量以及要绘制的最大数量.我已编码为创建一个包含所需随机数的数组但我需要它们是唯一的并且我很难做到这一点如果有人能给我一些建议,我将非常感激,谢谢

到目前为止,这是我的代码:

class Lottery

{

  static int[] numberHolder; //array to be filled with numbers up to an 
                             //amount entered by the user eg 42 Max

  static int[] drawHolder;   //array to hold the each random number 
                             //drawn from the pool of numbers eg 7 numbers

    public Lottery() //Lottery class Constructor
    {

    }


    //method which takes in a number limit and amount of numbers to be drawn
    public String drawNumbers(int numLimit, int numAmount) 
    {

        Random RandomNumber = new Random();

        for (int i …
Run Code Online (Sandbox Code Playgroud)

c# arrays random for-loop tostring

5
推荐指数
1
解决办法
5511
查看次数

使用GUID是一种生成随机字符串和数字的有效方法吗?

可能重复:
System.Guid.NewGuid()的随机性如何?

基于这个问题,我想知道是否使用GUID生成一个随机的字符串和数字有任何缺陷吗?

因此,例如,如果我想要一个随机字符串和32个或更少字符的数字,我可以使用以下C#代码:

string s = Guid.NewGuid().ToString().Replace("-", "");
Run Code Online (Sandbox Code Playgroud)

如果长度需要小于32,我将截断字符串,如果需要更长,我会将多个GUID一起添加.

这种方法有哪些缺陷?

在我写完之后,我意识到一个缺陷就是它只会有字母a到f所以我会修改这个问题:

这是一个真正随机的6个字符和10个数字的序列吗?

.net c# random

2
推荐指数
2
解决办法
5480
查看次数

标签 统计

c# ×4

random ×3

guid ×2

.net ×1

.net-core ×1

arrays ×1

for-loop ×1

tostring ×1

uuid ×1