相关疑难解决方法(0)

如何评估哈希冲突概率?

我正在开发一个搜索系统的后端应用程序.搜索系统将文件复制到临时目录并为其提供随机名称.然后它将临时文件的名称传递给我的应用程序.我的应用程序必须在有限的时间内处理每个文件,否则它将被关闭 - 这是一种看门狗般的安全措施.处理文件可能需要很长时间,所以我需要设计能够处理这种情况的应用程序.如果我的应用程序在下次搜索系统想要索引同一文件时关闭,它可能会给它一个不同的临时名称.

显而易见的解决方案是在搜索系统和后端之间提供一个中间层.它会将请求排入后端并等待结果到达.如果请求在中间层超时 - 没问题,后端将继续工作,只有中间层重新启动,并且当搜索系统稍后重复请求时,它可以从后端检索结果.

问题是如何识别文件.他们的名字随机变化.我打算使用像MD5这样的哈希函数来散列文件内容.我很清楚生日悖论,并使用链接文章中的估计来计算概率.如果我假设我有不超过100 000个文件,那么具有相同MD5(128位)的两个文件的概率大约为1,47x10 -29.

我应该关心这种碰撞概率还是假设相等的散列值意味着相同的文件内容?

language-agnostic estimation md5 probability

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

PHP上传文件时生成唯一文件名的最佳方法

任何人都可以建议为文件上传生成唯一文件名以避免重复条目的最佳做法吗?

提前致谢.

php upload image unique identifier

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

原子比较C中两个整数的最快方法?

uint64_t n;      // two 32-bit integers

return ( (uint32_t)(n >> 32) == (uint32_t)n );
Run Code Online (Sandbox Code Playgroud)

将32个最高有效位与uint64_t的32个最低有效位进行原子比较的最快方法是什么?

我认为一个可怕的解决方案是:获取自旋锁,读取32 LSB,读取32 MSB,比较得到结果,释放自旋锁,返回结果.有没有办法做到这一点,而不必采取螺旋锁?

c caching atomic bit

9
推荐指数
2
解决办法
2400
查看次数

Mongo 最大索引大小

Mongo Docs讨论了最大索引大小。

Index Key
The total size of an indexed value must be less than 1024 bytes. 
MongoDB will not add that value to an index if it is longer than 1024 bytes.
Run Code Online (Sandbox Code Playgroud)

使用db.collection.stats(),我可以看到我的平均文档大小为 5 MB。如果我在占文档 50% 的字段上建立索引,这是否意味着索引大小将是50% * 5 MB = 2.5 MB

我对如何为单个文档计算索引大小感到困惑。

indexing mongodb

6
推荐指数
1
解决办法
6655
查看次数

依赖Python哈希函数时有什么冲突风险?

在我的程序中,我需要存储与许多(我们谈论数十万、数百万)游戏板状态相关的数据。为此,我使用字典。

class BoardState(object):
    def __init__(self, ...):
        # ...
        self.board = [ [ None ] * self.cols for _ in xrange(self.rows) ]

    def __hash__(self):
        board_tuple = tuple([ tuple(row) for row in self.board ])
        return hash(board_tuple)

    # ...
Run Code Online (Sandbox Code Playgroud)

self.board在我的主要用例中,是一个 2D 列表,有 6 行和 7 列。

一开始我dictBoardState对象索引了。但由于除了将来的查找之外,我不会将BoardState存储的对象dict用于其他目的,因此我注意到我可以通过索引来节省内存hash(board_state)(此版本使用的内存减少了 4 倍)。

BoardState两个不同的对象(内部有不同的boards)在 ing 后产生相同值的可能性有多大hash

为了澄清一点,这就是我存储和检索值的方式dict

board_state = BoardState(...)
my_values[hash(board_state)] = { ... }
...
other_val_with_board_state = source_function() …
Run Code Online (Sandbox Code Playgroud)

python hash python-2.7

6
推荐指数
1
解决办法
5371
查看次数

MD5和SHA512尺寸和安全性

据我所知,如果你谈论md5它可以存储32 characters.我知道,如果超过限制,32 characters它仍然会凑它完美的罚款,但它实际上可能是相同hashmd5( 'a' ),虽然,不可能.

是不是可能是非常危险和不安全然后使用(MD5)saltmd5,甚至没有检查的input的长度password+ salt

例1:

$pass = md5( 'this is a password' );
$salt = md5( 'this is a salt' );

// Will exceed 32 range and might therefore equal md5( 'a' ) -
// if so this will pass an authorization such as login
md5( $pass . $salt );
Run Code Online (Sandbox Code Playgroud)

例2:

// 32 character password
$pass = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; …
Run Code Online (Sandbox Code Playgroud)

php security encryption hash cryptography

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