Articles of 哈希

Nginx的上传模块有什么用?

我已经使Nginx上传正常使用Python(Tornado)。 我将上传的文件的path保存在数据库中。 但是,我不知道为什么上传模块必须拆分我的上传,并把它们放到10个不同的文件夹/var/www/…/uploads/0,1,2,3,4,5…9 ? 下面的评论说,这些文件被哈希,模块做什么和为什么这样做? # Store files to this directory # The directory is hashed, subdirectories 0 1 2 3 4 5 6 7 8 9 should exist upload_store /var/www/…uploads 1;

使用散列函数

我正在用LINUX做我的功课,我有一些关于散列函数的问题。 当我把*mnemonic_nameinput到像'ADD'这样'ADD'string时, find_index在每次编译时都是随机的。 你能解释这个问题并为我解决吗? 这是我的代码: 251 int symtab_finder(char *mnemonic_name) 252 { 253 node *temp; 254 255 int find_index = op_find(mnemonic_name); 256 int find_flag = 0; 257 258 temp = optabl[find_index].head; 259 260 while(temp) 261 { 262 if((strcmp(temp->mnemonic_name,mnemonic_name)==0)) 263 { 264 find_flag = 1; 265 } 266 temp = temp->next; 267 268 } 269 if(find_flag == […]

/net/ipmr.c中的MFC_HASH

我正在组播,并在linux代码(ipmr.c)中遇到这个散列。 据我所知,散列表的大小是64.而MFC_HASH的IP目的地址是最高的8位,源IP地址的高6位。 它与63进行异或运算,因此结果肯定在0-63之间。 请查找以下代码以获取更多信息。 struct mr_table { struct list_head list; possible_net_t net; u32 id; struct sock __rcu *mroute_sk; struct timer_list ipmr_expire_timer; struct list_head mfc_unres_queue; struct list_head mfc_cache_array[MFC_LINES]; … … } #define MFC_LINES 64 #ifdef __BIG_ENDIAN #define MFC_HASH(a,b) ((((a)>>24)^((b)>>26))&(MFC_LINES-1)) #else #define MFC_HASH(a,b) (((a)^((b)>>2))&(MFC_LINES-1)) #endif 这个散列有什么特别之处? 如何比仅添加两个IP地址并以63进行模数更好呢?还是只对组IP地址进行模数? 另外,如果我想从64增加散列表大小到128,那么如果我把MFC_LINE改为128就足够了吗? 或者我需要改变MFC_HASH使用从group-ip和source-ip的位数? 有人可以帮忙吗? 我的机器是大端的。 谢谢。

将linux sha512阴影转换为hex

我想了解linux阴影string格式,并将string转换为一般的hex格式,就像MD5通常表示。 我在这里http://www.akkadia.org/drepper/SHA-crypt.txt 如上所述,最后一步(步骤22)是一个特殊的base-64编码,具有重新sorting的字节。 我写了一个python脚本(我的第一个python程序)来解码base64,然后把它恢复到原来的顺序。 但是问题是 ,结果与通常的SHA1哈希值不一样。 例如,密码“123”(不带引号)与盐“456”将产生阴影string $ 6 $ 456 $ yTSeWYNbvZDCsuZIN.Qdeg.0DxY5N1XddpO7qgFqjnZOqpy5QXIeMM7pdQYWIgu6Y3pSh5eYqJ21fqrlrjhJe / 随着我的程序,它生成 A922F952190B1ED9ADD9EFEDA918472364A10CABDBE79D7B5EA52A4FA6691B6A7648D429AB7BED45C7F7FE9938B8C0084F3025365C1FDC968A145192767D566A 但是,123456和456123的SHA512散列是 BA3253876AED6BC22D4A6FF53D8406C6AD864195ED144AB5C87621B6C233B548BAEAE6956DF346EC8C17F5EA10F35EE3CBC514797ED7DDD3145464E2A0BAB413 CA3D1DDE02C4B15D2E95521E259C5E08AAEA8FEAA722BA14014605249EFE3F248DB3D98AA7C4ACCBE887E1B40573D7EBA71017C5DF029C16C8D6F06B0FFDA310 他们没有一样是我的结果。 那么,有没有什么我对阴影生成方法的错误理解? 或者我的代码错了? 我的Python代码(input应该是base64代码,即在阴影string的最后一个“$”之后的string): #!/usr/bin/python # filename: conv.py import sys b64s = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" bm = ( \ (0,21,42), \ (22,43,1), \ (44,2,23), \ (3,24,45), \ (25,46,4), \ (47,5,26), \ (6,27,48), \ (28,49,7), \ (50,8,29), \ (9,30,51), […]

Linux套接字文件描述符通常适用于散列

我正在编写一个Linux多用户服务器,并且每个接受的连接都会返回一个包含该连接的套接字文件描述符的int 。 我也有一个对应于每个连接的UserConnection对象。 我正在使用散列表(C ++ STL unordered_map<int, UserConnection> )来存储套接字文件描述符(键)和UserConnection对象(值)的键值对。 将套接字文件描述符作为关键字放在哈希表中是否安全? Linux的套接字号码分配有没有任何模式可能不适用于散列函数?

Perl – 如何从分隔的txt文件读取每一行并处理它

我有一个由“:”分隔的文本文件 它有3个领域 字段1 – >文件的名称 field-2 – >文件的源path 字段3 – >文件的目标path 例如。 helloWorld.txt:/home/abc:/home/xyz 现在我必须从源path复制这个文件helloWorld.txt到目标path。 这需要为文本文件中的所有可用行完成。 我不知道我正在尝试的是最佳做法。 它没有工作。 有人可以告诉最好的方法来完成这个? 非常感谢 open FILE, $inputFile or die $!; while(my $file_name=<FILE>) { my ($tmpvar1, $tmpvar2, $tmpvar3) = split(/:/, $_); my $command = "cp ".$tmpvar2. "/". $tmpvar1 $tmpvar3; exce $command; }

从哈希中提取值

您好使用HTTParty来调用一个远程JSON文件,我需要提取的URL在我的一个testing中使用.. JSON格式是这样的: "manifest" : { "header" : { "generated" : "xxxxxxxxxxxxxxx", "name" : "xxxxxxxxxxx", "version" : "1.0.0" }, "files" : [ { "file" : "blimp.zip", "url" : "http://www.xxx.xx/restaurants_blimp.zip", "checksum" : "ee98c9455b8d7ba6556f53256f95" }, { "file" : "yard.zip", "url" : "www.xxx.xx/yard.zip", "checksum" : "e66aa3d123f804f34afc622b5" } 在irb我可以得到所有的子哈希里面的例子:['清单'] ['文件'],我只能得到的url,如果我expecify哪一个..例如把文件['清单'] ['文件' ] ['1'] ['url'] < – 这对irb工作,但因为我需要得到所有url这就是为什么我使用.each但它使我不能转换为string错误或类似 #!/usr/bin/env ruby require […]

是否有一个原因PHP的(和Python的)哈希函数是不同的我的系统?

可能重复: 为什么Python创build的MD5散列与使用shell中的echo和md5sum创build的散列不同? 我刚看到这个,我不明白。 我不知道有关PHP的内部…什么东西? 还是有假设我正在做…什么? 那不正确? $ sha512sum <(echo 'hello') e7c22b994c59d9cf2b48e549b1e24666636045930d3da7c1acb299d1c3b7f931f94aae41edda2c2b207a36e10f8bcb8d45223e54878f5b316e7ce3b6bc019629 /proc/self/fd/11 并且: $ echo 'hello' | sha512sum e7c22b994c59d9cf2b48e549b1e24666636045930d3da7c1acb299d1c3b7f931f94aae41edda2c2b207a36e10f8bcb8d45223e54878f5b316e7ce3b6bc019629 – 但是之后: php -a Interactive shell php > echo hash('sha512', 'hello'); 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043 ∅ cat hashtest.php <?php echo hash('sha512', 'hello'); ?> ∅ php hashtest.php 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043 这是怎么回事? 我在Linux x86_64,我的系统文本编码是UTF utf-8 ,这些都是ASCII字符。 我不知道我在忽略什么。 有趣的是 ,对于一些“有趣的”值,Python同意PHP: >>> hashlib.sha512(b'hello').hexdigest() '9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043' 老实说,尽pipe我谦虚的开放,我认为这是一种巨大的和未知的PHP错误。 […]

为什么MySQL的ENCRYPT在每个调用中返回不同的结果?

我有一个丑陋的服务器问题 ,我试图不要忽略任何细节。 我的虚拟邮件用户密码与MySQL的ENCRYPTfunction一起存储。 我的基本想法是将我的虚拟用户的表从旧机器转储,然后导入到新的。 只是为了仔细检查,我试图再次用ENCRYPT存储一个string,并且存储的数据是不同的。 这是否意味着我不能像我想的那样简单地导出/导入用户?

Perl脚本奇怪的行为/回收内存

我的脚本执行以下操作 读取一个巨大的文本文件,并从中创build一个哈希值(大约2千4百万个简单的键值对,耗时约5分钟,占用4Gb计算机内存的92%) 使用哈希信息运行模拟(大约30分钟) 在模拟结束时打印结果(到文件和stdout) 然后在最后的打印声明之后等待10分钟以上并退出。 最后的等待不会每次都发生。 在wait top命令期间显示相同的92%的内存使用率,但没有CPU使用率。 为什么有时候会这样呢? 如果我按Ctrl C ,它会立即退出,而不会改变结果(结果)。 我如何debugging这个或者是预期的行为,因为哈希是巨大的? 编辑 是否有可能通过从哈希中删除不需要的键值对来回收一些内存?