我一直在寻找大多数python加密库,我决定使用PyCrypto或M2Crypto.
我放弃了ezPyCrypto,因为它只支持MD5进行签名和Keyczar,因为它还不够成熟.
所以我读过如果要加密的文本(或签名哈希)未正确填充,RSA很容易受到多次攻击.
这是什么意思?
PyCrypto或M2Crypto都没有提到任何关于这一点,谷歌没有找到任何相关的东西.这些库是否会自动添加paddign?一个人怎么说?
如果上面的答案是否定的,那么什么被认为是正确的填充?
Cyclomatic Complexity提供了一个粗略的指标,用于了解给定函数的难易程度,或者包含错误的可能性.在我已经阅读过的实现中,通常所有基本的控制流构造(if,case,while,for等)都会使函数的复杂度增加1.在我看来,圈复杂度旨在确定"通过程序的源代码的线性独立路径的数量",虚函数调用也应该增加函数的圈复杂度,因为在运行时将调用哪个实现的模糊性(调用在路径中创建另一个分支)执行).
但是,如果它包含一个等效的switch语句(每个'case'关键字一个点,对于实现所讨论的虚函数的层次结构中的每个类都有一个case关键字),那么惩罚函数的量就会过于苛刻,因为虚函数调用通常被认为是更好的编程实践.
虚拟函数调用的圈复杂度的成本应该是多少?我不确定我的推理是否反对将圈复杂度作为衡量虚拟函数或不同东西的度量的指标.
编辑:在人们的回答之后,我意识到它不应该增加圈复杂性,因为我们可以认为虚函数调用等同于对包含大量switch语句的全局函数的调用.即使该函数得分较差,它只在程序中存在一次,而用switch语句直接替换每个虚函数调用会导致成本很多次.
language-agnostic virtual-functions cyclomatic-complexity code-metrics switch-statement
我想从Java启动一个进程,读取它的输出,并获取它的返回代码.但是当它正在执行时,我希望能够取消它.我首先启动这个过程:
ProcessBuilder pb = new ProcessBuilder(args);
pb.redirectErrorStream(true);
Process proc = pb.start();
Run Code Online (Sandbox Code Playgroud)
如果我调用proc.waitFor(),在进程退出之前我什么也做不了.所以我假设我需要这样的东西:
while (true) {
see if process has exited
capture some output from the process
decide if I want to cancel it, and if so, cancel it
sleep for a while
}
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?有人能给我一个如何在Java中做到这一点的例子吗?
我试图找到一种很好的方法来捕获一个距离给定字符串不超过N个字符的数字.
例如,如果字符串是"年龄"并且必须找到N = 4
"Age 5" => 5
"My age is 10 and I my name is John" => 10
"My age is almost 5 and I my name is Mary" => null
Run Code Online (Sandbox Code Playgroud)
在最后一种情况下,该数字与"年龄"分开超过4个字符.
我想创建一个具有一个方法的类,该方法调用不在超类中的所有其他方法.
有没有办法我可以使用obj.methods来获取非祖先方法?或者还有另一种方法可以完全实现.
谢谢
假设我有一个类似于下面的URLconf,'foo'并且'bar'是有效值page_slug.
urlpatterns = patterns('',
(r'^page/(?P<page_slug>.*)/', 'myapp.views.someview'),
)
Run Code Online (Sandbox Code Playgroud)
然后,我可以使用下面的方法重建URL,对吗?
>>> from django.core.urlresolvers import reverse
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'foo'})
'/page/foo/'
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'bar'})
'/page/bar/'
Run Code Online (Sandbox Code Playgroud)
但是,如果我将URLconf更改为此怎么办?
urlpatterns = patterns('',
(r'^foo-direct/', 'myapp.views.someview', {'page_slug': 'foo'}),
(r'^my-bar-page/', 'myapp.views.someview', {'page_slug': 'bar'}),
)
Run Code Online (Sandbox Code Playgroud)
我期待这个结果:
>>> from django.core.urlresolvers import reverse
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'foo'})
'/foo-direct/'
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'bar'})
'/my-bar-page/'
Run Code Online (Sandbox Code Playgroud)
但是,这会引发NoReverseMatch异常.我怀疑我正在尝试做一些不可能的事情.有什么建议可以实现我想要的更好的方式吗?
命名URL不是一个选项,因为我不希望链接到这些的其他应用程序需要知道URL结构的细节(封装和所有这些).
我需要一个简单的随机英语句子生成器.我需要用自己的语言填充它,但它需要能够制作更长的句子,至少遵循英语规则,即使它们没有意义.
我希望那里有数百万人,所以不是重新发明轮子,我希望你知道一个人的资源,或者一个资源,它会给我足够的信息,我没有必要追捕我的生锈的英语技能.
如果我使用EventWaitHandle(或AutoResetEvent,ManualResetEvent)来同步线程之间然后做我需要调用Close()或Dispose()方法对事件处理的时候,我用它做什么?
EventWaitHandle继承自WaitHandle,实现IDisposable.如果我没有IDisposable在包含任何类的任何类上实现,FxCop会抱怨EventWaitHandle.所以这表明我确实需要打电话给它.
但是,这些MSDN用法示例都没有调用Dispose()或Close():
http://msdn.microsoft.com/en-us/library/system.threading.eventwaithandle(VS.80).aspx http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent( VS.80).aspx http://msdn.microsoft.com/en-us/library/system.threading.autoresetevent(VS.80).aspx
这只是微软无视自己建议的一个例子吗?
我有两个问题.其中一个对我有意义,另一个则没有.第一:
SELECT gender AS 'Gender', count(*) AS '#'
FROM registrations
GROUP BY gender WITH ROLLUP
Run Code Online (Sandbox Code Playgroud)
这给了我这个:
Gender #
Female 20
Male 19
NULL 39
Run Code Online (Sandbox Code Playgroud)
所以,我得到了计数和总数.我的期望.下一个:
SELECT c.printable_name AS 'Country', count(*) AS '#'
FROM registrations r
INNER JOIN country c ON r.country = c.country_id
GROUP BY country WITH ROLLUP
Country #
Denmark 9
Norway 10
Sweden 18
United States 1
Uzbekistan 1
Uzbekistan 39
Run Code Online (Sandbox Code Playgroud)
结果相同.但为什么我要总共得到乌兹别克斯坦?
java ×2
python ×2
ruby ×2
.net ×1
c# ×1
code-metrics ×1
django ×1
encryption ×1
generator ×1
inheritance ×1
memory ×1
methods ×1
mysql ×1
performance ×1
random ×1
regex ×1
rsa ×1
symbols ×1