问题列表 - 第3756页

RNGCryptoServiceProvider的优缺点

什么是使用的利弊System.Security.Cryptography.RNGCryptoServiceProviderVS System.Random.我知道这RNGCryptoServiceProvider是"更随机",即黑客可预测性更低.任何其他利弊?


更新:

根据回复,以下是目前使用的利弊RNGCryptoServiceProvider:

优点

  • RNGCryptoServiceProvider 是一个更强大的加密随机数,这意味着它更适合确定加密密钥等.

缺点

  • Random更快,因为它是一个更简单的计算; 当在模拟或长时间计算中使用加密随机性不重要时,应该使用它.注意:有关模拟的详细信息,请参阅Kevin的答案 - Random不一定是随机的,您可能希望使用不同的非加密PRNG.

.net c# random

68
推荐指数
4
解决办法
2万
查看次数

ASP.NET - 括号中的负数

我的应用程序当前显示负数为-1.用户已经改变了要求(只是为了改变!),现在我们必须将数字显示为(1).我是否可以为整个应用程序启用更改web.config甚至应用程序的CultureInfo?这样做是否有任何副作用,因为我们有很多包含数字验证器的页面?

谢谢 !

asp.net web-config cultureinfo

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

C#:线程安全的richtextbox事件记录方法?

我有一个方法,用于在表单中的RichTextBox上显示输出.

    public void LogTextEvent(RichTextBox TextEventLog, Color TextColor, string EventText)
    {
        string nDateTime = DateTime.Now.ToString("hh:mm:ss tt") + " - ";

        // color text.
        TextEventLog.SelectionStart = TextEventLog.Text.Length;
        TextEventLog.SelectionColor = TextColor;

        // newline if first line, append if else.
        if (TextEventLog.Lines.Length == 0)
        {
            TextEventLog.AppendText(nDateTime + EventText);
            TextEventLog.ScrollToCaret();
            TextEventLog.AppendText(System.Environment.NewLine);
        }
        else
        {
            TextEventLog.AppendText(nDateTime + EventText + System.Environment.NewLine);
            TextEventLog.ScrollToCaret();
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我从一个线程内运行的另一个方法调用LogEventText()时出现问题:

            Thread thListening = new Thread(new ThreadStart(StartListening));
            thListening.Start();
Run Code Online (Sandbox Code Playgroud)

在StartListening方法内部(它是一个创建的线程,处理为小型http服务器的主侦听套接字上的客户端创建的新tcp套接字),我使用LogTextEvent来记录一些数据,但是我收到InvalidOperationException是未处理的错误在第二行的LogTextEvent方法中,TextEventLog.SelectionStart = TextEventLog.Text.Length;

错误读取,跨线程操作无效:控制'rchEventLog'从其创建的线程以外的线程访问.

任何人都可以帮助分解正在发生的事情,为什么以及如何修复错误?

c#

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

在现有程序中查找和使用内存偏移?

大多数游戏僵化的应用程序使用他们为特定版本的游戏客户端找到的一系列内存偏移来促进僵局.它们可能具有健康,x/y位置等的存储器偏移.每次游戏发布更新时,必须重新找到并更新机器人程序使用的各种信息的偏移量.

我有兴趣将Solitaire机器人写成宠物项目.如果你看这里,mmoglider(一个商业机器人)已经完成了这个作为他们的僵尸程序的演示(通常用于机器人魔兽世界):MMOGlider botting Vista Solitaire的YouTube视频.

准确定位各种有用的内存偏移的常用方法是什么?我怎样才能找到指向单人纸牌程序中"牌组"的记忆偏移量并使用它来确定堆叠中的牌?我从滑翔机家伙的经验中知道,一旦他们能够找到甲板本身的偏移量,他们就会说整个甲板上的每张牌值都在那里.

那么,是否有人有任何逆向工程经验和从现有程序中提取内存偏移?一旦你有了这些偏移量,如何能够从内存中的"Deck"结构中提取和读取值?

memory automation reverse-engineering

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

如何将输出重定向到文件和标准输出

在bash中,调用foo将在stdout上显示该命令的任何输出.

调用foo > output会将该命令的任何输出重定向到指定的文件(在本例中为'output').

有没有办法将输出重定向到文件并将其显示在stdout上?

linux io bash file-io stdout

898
推荐指数
9
解决办法
57万
查看次数

SQLite - UPSERT*不*INSERT或REPLACE

http://en.wikipedia.org/wiki/Upsert

在SQL Server上插入更新存储过程

在SQLite中有没有一些我没想到的聪明方法?

基本上,如果记录存在,我想更新四列中的三列,如果它不存在,我想用第四列的默认(NUL)值插入记录.

ID是主键,因此UPSERT只会有一条记录.

(我试图避免SELECT的开销,以确定我是否需要更新或插入显然)

建议?


我无法在SQLite网站上确认SQL CREATE的语法.我还没有构建一个演示来测试它,但它似乎不支持..

如果是,我有三列,所以它实际上看起来像:

CREATE TABLE table1( 
    id INTEGER PRIMARY KEY ON CONFLICT REPLACE, 
    Blob1 BLOB ON CONFLICT REPLACE, 
    Blob2 BLOB ON CONFLICT REPLACE, 
    Blob3 BLOB 
);
Run Code Online (Sandbox Code Playgroud)

但是前两个blob不会引起冲突,只有ID会因此我asusme Blob1和Blob2不会被替换(根据需要)


绑定数据时SQLite中的UPDATE是一个完整的事务,这意味着每个要更新的发送行都需要:Prepare/Bind/Step/Finalize语句,与允许使用重置函数的INSERT不同

语句对象的生命周期如下:

  1. 使用sqlite3_prepare_v2()创建对象
  2. 使用sqlite3_bind_接口将值绑定到主机参数.
  3. 通过调用sqlite3_step()运行SQL
  4. 使用sqlite3_reset()重置语句,然后返回步骤2并重复.
  5. 使用sqlite3_finalize()销毁语句对象.

更新我猜测与INSERT相比速度慢,但它与使用主键的SELECT相比如何呢?

也许我应该使用select来读取第4列(Blob3),然后使用REPLACE编写一条新记录,将原始的第4列与前3列的新数据混合在一起?

sql sqlite upsert

505
推荐指数
11
解决办法
28万
查看次数

为什么C这么快,为什么其他语言不快或更快?

在收听StackOverflow播客时,jab不断出现"真正的程序员"用C语言编写,而C语言更快,因为它"靠近机器".将前一个断言留给另一个帖子,C的特殊之处在于它是否比其他语言更快?或者换一种方式:什么阻止其他语言能够编译成二进制文件,它运行速度和C一样快?

c performance

202
推荐指数
16
解决办法
11万
查看次数

Pythonic相当于unshift或redo?

我正在学习Python,我有一种情况,我想从迭代器中使用项目.棘手的部分是在某些条件下,我想"不迭代".也就是说,在循环之前将项放回到迭代器的前面.

例如,假设我从树上摘苹果.我的水果篮在需要清空之前只能容纳10公斤.但是我必须在我称之前挑选每个苹果,并确定这个苹果是否会超过篮子的容量.

在像Perl这样的语言中,我可以unshift()将苹果重新放回树上,然后让循环表达式重新选择苹果:

while ($apple = shift(@tree)) {
  $wt = weight($apple);
  if ($wt + weight(@basket) > 10) {
    send(@basket);
    @basket = ();
    unshift(@tree, $apple);
  } else {
    push(@basket, $element);
  }
}
Run Code Online (Sandbox Code Playgroud)

或者我也可以使用redo,它在块的顶部恢复处理,而不评估循环表达式.因此,在篮子被清空后,同样的苹果可以被重新加工.

while ($apple = shift(@tree)) {
  $wt = weight($apple);
  if ($wt + weight(@basket) > 10) {
    send(@basket);
    @basket = ();
    redo;
  } else {
    push(@basket, $apple);
  }
}
Run Code Online (Sandbox Code Playgroud)

对于这类问题,什么是最pythonic的解决方案?

python redo

12
推荐指数
3
解决办法
6934
查看次数

通过批处理文件删除txt文件中的某些行

我有一个生成的txt文件.此文件具有某些多余的行,需要删除.需要删除的每一行都有一行中的两个字符串; "错误"或"参考".这些令牌可能出现在该行的任何位置.我想删除这些行,同时保留所有其他行.

所以,如果txt文件看起来像这样:

Good Line of data
bad line of C:\Directory\ERROR\myFile.dll
Another good line of data
bad line: REFERENCE 
Good line

我希望文件最终像这样:

Good Line of data
Another good line of data
Good line

TIA.

string batch-file

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

Trashed Postgres template1

我在psql中搞砸了,并在实现它们之前重命名了template0和template1.现在,当我尝试重新创建template1时,我从psql内部和form命令行中获得"权限被拒绝复制数据库'template1'".

为了节省时间,还需要了解template1与/ data/base中的操作系统读/写权限或者在template1上授予的任何其他内容.

TIA

postgresql templates

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