小编Din*_*nah的帖子

白帽子程序员的黑帽知识

当诚实的开发人员学习黑帽黑客的技术时,非程序员总是持怀疑态度.显然,我们需要学习他们的许多技巧,这样我们才能保持自己的安全性.

您认为诚实的程序员在多大程度上需要了解恶意程序员的方法?

security

72
推荐指数
13
解决办法
4985
查看次数

为什么.NET没有内存泄漏?

忽略不安全的代码,.NET不会有内存泄漏.我从许多专家那里无休止地读到了这一点,我相信它.但是,我不明白为什么会这样.

我的理解是框架本身是用C++编写的,C++容易受到内存泄漏的影响.

  • 底层框架是如此精心编写的,它绝对没有任何内部内存泄漏的可能性?
  • 框架代码中是否存在自我管理甚至可以解决其自身内存泄漏的问题?
  • 答案是我没有考虑过的其他问题吗?

.net memory-leaks

57
推荐指数
4
解决办法
5548
查看次数

这个正则表达式如何找到素数?

可能重复:
如何确定一个数字是否是正则表达式的素数?

此页面声称此正则表达式发现非素数(并通过反例:素数):

/^1?$|^(11+?)\1+$/
Run Code Online (Sandbox Code Playgroud)

这怎么找到素数?

regex primes

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

有在线PHP IDE吗?

是否有PHP的IDE,您可以在线编辑页面的代码?真正的语法突出显示是最小的.更多会很棒.我希望除了在家时,能够在我的网站上进行开发.

php ide

54
推荐指数
9
解决办法
5万
查看次数

Visual Studio 2005 Express在哪里?

我正在开发一个需要Visual Studio 2005的项目,我一直在努力为Visual Studio 2005 Express找到一个合法的下载站点,但似乎微软只希望人们下载2008版本.

任何人都知道为什么会这样,如果某个地方有Visual Studio 2005 Express可用的链接?

c# visual-studio-2005 download

37
推荐指数
5
解决办法
7万
查看次数

找到3x3打孔的所有组合

我参加了一个狂欢节,在每个地方,他们用特殊的打孔标记你的节目.打孔器是3x3空间的网格.在每个空间中,有一个针刺穿你的纸张或没有.这让我想知道你可以使用这个工具制作多少种不同的模式.我的第一个想法是:2 ^ 9 = 512,但是所有9个空间都是无针的并不是真正的一拳,所以真的:511.

然后复杂性打击了我.特别是因为工人们在打纸时并不是那么小心,所以这些看起来都很明显:

x..  .x.  ...  etc.
.x.  x..  .x.
...  ...  ..x
Run Code Online (Sandbox Code Playgroud)

问题:如何编写测试以考虑轮换和转换?


到目前为止的勤奋和思想:

  • 二元感觉就像这个等式的一个明显的部分
  • 找到唯一模式后,将其存储在内存中,以便可以对其进行未来模式测试
  • 有4种旋转可能性.
    编辑:我所说的"旋转"是指你可以采取任何形状并将其旋转90度.考虑左上角是点的图案.您可以将其旋转/旋转90度并获得右上角的点.再次这样做,它在右下方.再次,它在左下角.使用纯2 ^ 9计算,这些是4种不同的组合.然而,对于这个问题,这些正是我试图清除的那种重复.
  • 对于每次旋转,有25种方法可以使3x3网格重叠:

重叠:

/ = the spaces in the new one to test
\ = the spaces in a verified unique one

1               2               25
/ / / . . . .   . / / / . . .   . . . . . . .
/ / / . . . .   . / …
Run Code Online (Sandbox Code Playgroud)

algorithm combinations

36
推荐指数
1
解决办法
2484
查看次数

彩虹表作为大素数因子的解决方案

在我已经阅读过关于公钥加密的解释中,据说通过将2个极大的素数相乘来得出一些大数.由于对大质量产品进行分解几乎不可能耗费时间,因此您具有安全性.

这似乎是一个可以通过彩虹表轻易解决的问题.如果您知道所使用的素数的大致大小并且知道其中有2个,您可以快速构建彩虹表.它是一个强大的表,但它可以完成,任务可以跨硬件并行化.

为什么彩虹表不是基于乘以大素数而击败公钥加密的有效方法?

免责声明:显然,数以万计的疯狂智能安全意识的人不会错过几十年我在下午想到的事情.我认为我误解了这一点,因为我正在阅读简化的外行解释(例如:如果使用超过2个数字),但我还不知道我的知识差距在哪里.

编辑:我知道"彩虹表"涉及在查找表中使用预先计算的哈希,但上面的声音听起来像彩虹表攻击所以我在这里使用这个术语.


编辑2:如答案中所述,没有办法存储所有素数,更不用说它们的所有产品.

  • 这个网站说有这么多512位素数:((2 ^ 511)*1)/(512 log(2))= 4.35×10 151
  • 太阳质量为2×10 30 kg或2×10 33 g
  • 这是每克太阳2.17×10 124素数.
  • 数量.512位数可以适合千字节:1 kb = 1024字节= 8192位/ 512 = 16
  • 这可以适合太字节:16*1024*1024*1024 = 1.72×10 10
  • Petabyte:16*1024*1024*1024*1024 = 1.72×10 13
  • Exabyte:16*1024*1024*1024*1024*1024 = 1.72×10 16

即使1 exabyte重1克,我们也无法达到2.17×10 124所需的能够将所有这些数字装入带有太阳质量的硬盘中

cryptography rainbowtable public-key-encryption prime-factoring

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

ASP.NET MVC的必备知识

在我尝试学习ASP.NET的Arcana之后感到沮丧,我决定尝试ASP.NET MVC.

我对C#2.0有很多经验,除了ASP.NET之外几乎所有事情(WinForms,Windows服务,远程处理......).我编写PHP的时间甚至超过了我编写.NET的时间.凭借所有这些经验,我认为我已经为ASP.NET MVC做好了准备.我现在看到我正在同时学习以下内容并且有一点困难:

  • 一般的MVC模式
  • ASP.NET
  • ASP.NET MVC
  • .NET 3.5.

我目前正在通过NerdDinner免费书籍章节的一半.我并没有感到完全失去,但我确实感觉到我没有像我想的那样追随(因为我正在同时学习4件事 - 有时候不清楚哪一件事技能来自哪个抽象层).

您会为ASP.NET MVC推荐哪些先决条件知识?我上面列出的任何/所有人?其他?或者也许我只是很慢,大多数人会做我做的很好.

asp.net asp.net-mvc .net-3.5

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

设计模式使用而不是多重继承

来自C++背景,我习惯了多重继承.我喜欢瞄准我脚的霰弹枪的感觉.如今,我在C#和Java中工作得更多,你只能继承一个基类但实现任意数量的接口(我的术语是否合适?).

例如,让我们考虑两个实现公共接口但不同(但需要)基类的类:

public class TypeA : CustomButtonUserControl, IMagician
{
    public void DoMagic()
    {
        // ...
    }
}

public class TypeB : CustomTextUserControl, IMagician
{
    public void DoMagic()
    {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这两个类都是UserControls所以我不能替换基类.两者都需要实现这个DoMagic功能.我现在的问题是该函数的两个实现都是相同的.我讨厌复制粘贴代码.

(可能的)解决方案:

  1. 我自然希望TypeATypeB共享一个共同的基类,在那里我只能写一次相同的函数定义.但是,由于只有一个基类的限制,我无法在层次结构中找到适合的位置.
  2. 人们也可以尝试实现一种复合模式.将DoMagic函数放在一个单独的帮助器类中,但这里的函数需要(并修改)相当多的内部变量/字段.将它们全部作为(参考)参数发送只会看起来很糟糕.
  3. 我的直觉告诉我,适配器模式可以在这里有一个位置,一些类在必要时在两者之间进行转换.但它也感觉很hacky.

我用语言无关来标记它,因为它适用于使用这种one-baseclass-many-interfaces方法的所有语言.

另外,请指出我是否误解了我提到的任何模式.

在C++中,我只使用私有字段创建一个类,该函数实现并将其放在继承列表中.什么是C#/ Java之类的正确方法?

language-agnostic oop design-patterns

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

有没有办法在构建之前告诉Eclipse"全部保存"?

有没有人知道在构建java代码之前是否有办法让Eclipse执行"全部保存"?(我不使用"自动构建"选项,当你使用"Ctrl + B"进行构建时,我正在说话)

我通过偏好挖出来,似乎找不到任何东西,所以我想我会检查Stack Overflow上的蜂巢头脑以防万一.

我正在使用Ganymede,V3.4.1,Build id:M20080911-1700,如果它是相关的.

在此先感谢,戴夫麦基

java eclipse config

22
推荐指数
1
解决办法
6207
查看次数