小编bdo*_*lan的帖子

作为哈希的Skein的安全性是否意味着Threefish作为分组密码的安全性?

针对SHA-3提出的Skein哈希有一些令人印象深刻的速度结果,我怀疑它将适用于其核心的三鱼块密码 - 但是,如果Skein被批准用于SHA-3,这是否意味着三鱼被认为是安全的?也就是说,Threefish中的任何漏洞是否意味着SHA-3中存在漏洞?(因此,缺乏已知问题和对SHA-3的普遍信任对三鱼来说意味着相同)

theory cryptography skein sha-3

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

如何遍历Perl中的函数列表?

我在Perl中有一个函数列表.例:

my @funcs = qw (a b c)
Run Code Online (Sandbox Code Playgroud)

现在他们都属于这个模块Foo :: Bar :: Stix.我想在循环中迭代地调用它们:

foreach $func (@funcs) {
    Foo::Bar::Stix::$func->(%args)
}
Run Code Online (Sandbox Code Playgroud)

其中args是参数的哈希值.但是我不断收到这个错误:"包含Foo :: Bar :: Stix :: $ func - >(%args)的行之后的"...之后的错误名称"如何修复此错误?

ab和c不是函数对象而是字符串

perl loops function

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

POSIX线程:条件变量 - 重点是什么?

我最近一直在和pthreads合作,而且还有一件小事我还是不太了解.我知道条件变量旨在等待特定条件成立(或"发信号").我的问题是,这与普通的互斥体有何不同?

根据我的理解,当条件变为真时,条件变量不仅仅是具有额外逻辑的互斥锁来解锁另一个互斥锁(并再次锁定它)?

Psuedocode示例:

mutex mymutex;
condvar mycond;
int somevalue = 0;

onethread()
{
    lock(mymutex);

    while(somevalue == 0)
        cond_wait(mycond, mymutex);

    if(somevalue == 0xdeadbeef)
        some_func()

    unlock(mymutex);
}

otherthread()
{
    lock(mymutex);

    somevalue = 0xdeadbeef;

    cond_signal(mycond);

    unlock(mymutex);
}
Run Code Online (Sandbox Code Playgroud)

因此,此示例中的cond_wait解锁mymutex,然后等待mycond发出信号.

如果是这样,那么条件变量不仅仅是具有额外魔力的互斥量吗?或者我对互斥和条件变量的基本基础有误解?

pthreads condition-variable

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

HMONITOR需要被释放吗?如果是这样,怎么样?

一些多显示器的API函数(例如,MonitorFromRect)一HMONITOR手柄有问题返回到显示器上.我一直无法找到释放此句柄的函数 - 它是否需要被释放,如果是这样,我应该如何释放它?

winapi memory-leaks multiple-monitors

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

限制std :: set的大小

我有一个关于std :: set容器的简短问题.现在我正在使用pushback功能来提供我的设置.对于每个push_back,该集合变得越来越大.我只对最新的30个元素感兴趣......可以删除旧元素.所以我的想法是将集合的大小限制为30个元素左右,并通过这样做摆脱不需要的旧元素.但是,默认情况下,该集不支持限制.我可以偶尔检查一下这个集的大小,然后手动删除多余的元素.有更聪明的方法吗?

关心Lumpi

c++ lru stdset

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

pthread_cond_signal或pthread_cond_broadcast调用是否意味着写入内存屏障?

通常使用条件变量,使得它们所引用的状态在互斥锁下被修改.但是,当状态只是一个仅设置标志时,不需要互斥锁来防止同时执行.所以有人可能想做这样的事情:

flag = 1;
pthread_cond_broadcast(&cvar);
Run Code Online (Sandbox Code Playgroud)

但是,如果pthread_cond_broadcast意味着写入内存屏障,这只是安全的; 否则,等待线程可能会在标志写入之前看到条件变量广播.也就是说,等待线程可能会唤醒,消耗cvar信号,但仍然看到标志0.

所以,我的问题是:pthread_cond_broadcastpthread_cond_signal调用是否意味着写内存障碍?如果是,那么在相关的POSIX(或其他)规范中指定了哪里?在这一点上,规范似乎不清楚.

注意:我知道,实际上,这确实会导致内存障碍(在Linux上,因为线程唤醒意味着完整的CPU内存障碍,而跨库函数调用意味着编译器内存障碍).但是,我对这些规范的保护感兴趣.

c++ multithreading pthreads memory-barriers language-lawyer

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

"不匹配operator ="试图在C++中迭代map

我正在尝试迭代定义如下的地图:

std::map< size_type, std::pair<size_t, unsigned int> > ridx_;
Run Code Online (Sandbox Code Playgroud)

现在我试图在以下友元函数中迭代ridx_(这是类的私有成员),该函数重载operator <<

std::ostream& operator<<(std::ostream &os, const SMatrix &m) 
{
  std::map< size_type, std::pair<size_t, unsigned int> >::iterator it;

  //The following is line 34
  for (it = m.ridx_.begin(); it !=  m.ridx_.end(); it++)
    os << it->first << endl;

  return os;
}
Run Code Online (Sandbox Code Playgroud)

但是g ++出错了:

SMatrix.cpp:34:错误:'it = m-> SMatrix :: ridx_.std :: map <_Key,_Tp,_Compare,_Alloc> ::以_Key = unsigned int,_Tp开头的'operator ='不匹配= std :: pair,_Compare = std :: less,_Alloc = std :: allocator >>'/usr/include/c++/4.3/bits/stl_tree.h:152:注意:候选人是:std :: _ Rb_tree_iterator >> &std :: _ …

c++ iterator compiler-errors const map

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

Google App Engine的本地Java服务器中的XG-Transactions失败 - 在Live GAE上部署时运行正常

我需要在Google App Engine中的某些实体组中使用XG(跨群组)交易.不幸的是,当我在我的本地Jetty(Eclipse)服务器上运行任何这些操作时,App Engine开发包装器会抛出"java.lang.IllegalArgumentException:仅在High Replication应用程序中允许的多个实体组上的事务".

这非常令人沮丧,因为一旦我的应用程序部署在实时GAE服务器上,完全相同的XG事务就会运行得非常好.这是否意味着我必须在我想要测试我的应用程序时部署我的应用程序,因为我已经合并了XG事务?任何帮助是极大的赞赏.

PS我正在使用低级数据存储API,因为我使用的原始JDO层没有给出我需要的加载细节粒度,以防有所不同.

google-app-engine entity-relationship entity-group-transactions google-cloud-datastore

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

使用同一文件的已解密版本从加密文件中获取AES密钥

这甚至可能吗?加密文件在CBC模式下使用AES-128.我已经有它的解密版本,但我不知道用于加密它的密钥,我需要它(我不想说明原因).

我知道两个文件是相同的,因为填充被禁用(它们具有相同的大小).我也知道加密过程中使用的初始化向量,如果有帮助的话.

cryptography aes cryptanalysis

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

如何在不创建套接字文件的情况下使用unix域套接字

在Linux中,有没有使用AF_LOCAL(unix域套接字)在不使用文件的情况下在进程(IPC)之间进行通信的示例?(在只读文件系统上)

我必须使用Unix Domain套接字,但我没有在系统上创建文件创建/写入权限.

先感谢您.

sockets linux unix-socket

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