Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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
VBA Excel修改文件并保持相同的校验和_Excel_Vba - Fatal编程技术网

VBA Excel修改文件并保持相同的校验和

VBA Excel修改文件并保持相同的校验和,excel,vba,Excel,Vba,我看到了为一些纯文本文件创建校验和的不同方法,但我希望能够更改提到的文件内容,但同时通过用必要的字符填充文件的其余部分来保持已知(设置)校验和。多年前,当我发现一些应用程序(我认为是ATARI计算机)能够在改变磁盘ID后启动磁盘时,我就有了这个想法,前提是启动扇区的校验和为1234美元。是否可以在VBA中实现?多谢各位 我想能够改变提到的文件内容,但在同一时间,以保持已知的(设置)校验和填充必要的字符文件的其余部分 你不能这么做,至少对任何一种值得使用的哈希算法来说是不行的(加密双关语不是故意的

我看到了为一些纯文本文件创建校验和的不同方法,但我希望能够更改提到的文件内容,但同时通过用必要的字符填充文件的其余部分来保持已知(设置)校验和。多年前,当我发现一些应用程序(我认为是ATARI计算机)能够在改变磁盘ID后启动磁盘时,我就有了这个想法,前提是启动扇区的校验和为1234美元。是否可以在VBA中实现?多谢各位

我想能够改变提到的文件内容,但在同一时间,以保持已知的(设置)校验和填充必要的字符文件的其余部分

你不能这么做,至少对任何一种值得使用的哈希算法来说是不行的(加密双关语不是故意的……我发誓!)。从理论上讲,您可以这样做,但是为了得到与原始文件完全相同的哈希冲突,您需要添加多少字符(以及多少时间和磁盘空间!)是不确定的

你所问的基本上是违背了一个计划的全部目的

我不认为ATARI计算机使用SHA-1散列(160位),更不用说SHA-256或SHA-512(或128位MD5)或当今常用的任何其他算法

您可以实现一些较低的位,但是哈希越小,哈希冲突的风险就越高——而且越容易得到与校验和值冲突的哈希,校验和就越没有意义


根据定义,散列函数是不可逆的,如果给定两个相同的输入,加密散列甚至不会产生相同的输出。我不熟悉校验和,但如果我必须实现一个校验和,我可能会使用一个高比特率加密哈希算法,以将哈希冲突的风险降低到统计意义不大的程度。

您能否提供您的解决方法,这将有助于一些人在这方面提供帮助。这听起来很像一个。您试图用校验和实现什么,为什么您希望它保持不变,即使您更改了创建它的文件?谢谢。我将尝试找出其他方法,以获得某种可接受的解决方案。@Isma唯一明智的解决方案是接受不同的内容意味着不同的内容哈希/校验和值。。。