Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于哈希文件名的最快ASP.NET哈希函数_Asp.net_Performance_Optimization_Hash_Filenames - Fatal编程技术网

用于哈希文件名的最快ASP.NET哈希函数

用于哈希文件名的最快ASP.NET哈希函数,asp.net,performance,optimization,hash,filenames,Asp.net,Performance,Optimization,Hash,Filenames,我正在尝试优化我的ASP.NET缩略图脚本,这样它就不会一直调整所有图像的大小,问题的一部分是为缩略图命名/检查过程选择哈希函数 crc32是否能够完成任务?我这样问是因为输入的数据很小,只有相对路径、大小和日期。在散列中,您可以使用很多选择 Lasse V.Karlsen评论说,如果您拥有文件名字符串,那么在大多数情况下,GetHashCode就足够了。 如果您实际对文件的内容进行散列,您的选择范围是CRC32、MD5、SH1、SH256 infinte 如果你对文件进行哈希运算,我想/SHA

我正在尝试优化我的ASP.NET缩略图脚本,这样它就不会一直调整所有图像的大小,问题的一部分是为缩略图命名/检查过程选择哈希函数


crc32是否能够完成任务?我这样问是因为输入的数据很小,只有相对路径、大小和日期。

在散列中,您可以使用很多选择

Lasse V.Karlsen评论说,如果您拥有文件名字符串,那么在大多数情况下,GetHashCode就足够了。 如果您实际对文件的内容进行散列,您的选择范围是CRC32、MD5、SH1、SH256 infinte

如果你对文件进行哈希运算,我想/SHA1就足够了。如果我选择了你,我将构建一个测试用例,可能使用一台运行你的应用程序应该支持的最低硬件的虚拟机,然后尝试/SHA1。看看这个速度对你来说是否足够好,并检查是否足够好,以便在你的测试用例中尽可能多地使用图片


找到了一篇包含许多哈希函数的好文章

如果您只需要对文件名进行哈希,那么字符串的默认GetHashCode实现有什么问题?从技术上讲,最快的哈希函数应该类似于return 0;对于每个输入。如果不定义哈希函数的具体要求,就不可能知道什么是最快的。GetHashCode似乎很有趣,我不知道它的存在,但它的hashspan似乎只有整数宽,这会让我有大约4B个组合-在这么小的空间中一定会有一两个冲突?不知道字符串类型中有多少个排列?我通常使用GetHashCode首先比较int,然后比较字符串。这样我100%确定这是一个真正的匹配,我也得到了比较整数的高速