小编bob*_*ito的帖子

C#中是否允许加密随机生成器种子?

似乎没有办法在C#中手动播种RNGCryptoServiceProvider.我可以在下面做一些简单的事情来获得可重复的randomBytes进行调试吗?

  RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
  byte[] randomBytes = new byte[20];
  rngCsp.GetBytes(randomBytes);
  MessageBox.Show(Convert.ToBase64String(randomBytes));
Run Code Online (Sandbox Code Playgroud)

我知道我可以手动输入20个字节,但这是一个痛苦,因为我真的需要超过20个.另外,我知道我可以使用非加密随机数发生器,但最后,我将需要最好的随机生成.

顺便说一下,我猜有些CPU有真正的随机生成,其中种子在物理上是不可能的,但我不认为我的CPU具有这种能力.我想知道是否有人确切知道我可以用我的CPU来重置RNGCryptoServiceProvider环境并欺骗RNGCryptoServiceProvider使用先前的种子...我想我可以设置我的时钟并重置一些"用户日志位"某处...我知道这不切实际,但想知道是否有人在这方面取得过成功(尽管微软的目标可能是防止这种情况).

c# random prng visual-studio

4
推荐指数
1
解决办法
2476
查看次数

最好的"宏观方式"来重复C#行

在C#程序中,我有一个错误检查,重复了很多:

try 
{
  File.Move(searchfolder + question1 +"_"+ filestring +".txt", 
            searchfolder + question1 +".txt");
}
catch (Exception ex) 
{
  File.AppendAllText(adminfolder + question1 +"_l.txt", "!"); 
  side.Value = Convert.ToString(ex) + "[Check-In error at "
                               + Convert.ToString(MYLINE) +"] "+ side.Value;
}
Run Code Online (Sandbox Code Playgroud)

MYLINE是一个数字,MYLINE是我的程序中唯一改变的东西.

因此,正常的C++ #define宏可以使这更简单(我只需要在程序的顶部编写完整的"#define CHECKIN(MYLINE)...").

如何在C#中处理这个问题?

c# macros

0
推荐指数
1
解决办法
237
查看次数

标签 统计

c# ×2

macros ×1

prng ×1

random ×1

visual-studio ×1