标签: checksum

如何在C#中执行SHA1文件校验和?

如何使用SHA1CryptoServiceProvider()文件创建文件的SHA1校验和?

.net c# checksum sha1

59
推荐指数
3
解决办法
4万
查看次数

我应该使用什么校验和算法?

我正在构建一个系统,它需要能够找到是否已更新blob字节.我认为我应该计算它的校验和,存储它并稍后计算相同的校验和,以查看博客是否已更新,而不是存储整个blob(它们可以高达5MB).

目标是最小化以下(按此顺序):

  • 校验和的大小
  • 时间来计算
  • 碰撞的可能性(即使内容已被修改,也会发生2个相同的校验和).

我们的系统碰撞不超过1/1,000,000是可以接受的.问题不在于安全性,而在于更新/错误检测,因此罕见的冲突是可以的.(这就是为什么我把它放在最小化的东西中).

另外,我们不能自己修改文本的blob.

当然,md5,crcsha1浮现在脑海中,如果我想要一个快速的解决方案,我去了.然而,不仅仅是一个快速的解决方案,我正在寻找可以比较不同方法以及利弊的东西.

checksum md5 sha1 crc

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

文件包含自己的校验和

是否可以创建一个包含自己的校验和(MD5,SHA1,无论如何)的文件?而对于沮丧的笑话,我的意思是普通的校验和,而不是计算它的函数.

security checksum data-integrity

49
推荐指数
6
解决办法
2万
查看次数

Windows相当于linux cksum命令

我正在寻找一种计算crc校验和跨平台的方法.

cksum适用于Linux,AIX,HP-UX Itanium,Solaris,cksum在windows中是否有相同的linux命令?

%cksum run.sh
1491301976 652 run.sh
Run Code Online (Sandbox Code Playgroud)

注意:没有第三方工具

linux windows checksum solaris

48
推荐指数
3
解决办法
9万
查看次数

TCP校验和无法检测到错误吗?如果是的话,这是如何处理的?

如果TCP有效负载在传输过程中损坏,则重新计算的校验和将与传输的校验和不匹配.很棒,到目前为止都很好.

如果TCP校验和在传输过程中损坏,则重新计算的校验和将与现在已损坏的校验和不匹配.很棒,到目前为止都很好.

当有效负载和校验和都被破坏并且重新计算的校验和虽然与它应该是不同的时候会发生什么,恰好匹配现在已损坏的校验和?

我可以看到一个良好的校验和算法(以及较低级别的额外校验和),这可能非常非常不可能,但TCP不是100%可靠吗?它如何解决这些误报?

networking checksum tcp

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

如何在不重新运行语句的情况下强制Liquibase重新计算校验和?

我们正在使用Liquibase 3.2和Java 6.有没有办法可以强制Liquibase重新计算校验和,而无需重新运行Liquibase文件中的相同语句?在我们的数据库中,我运行这个......

update DATABASECHANGELOG set md5sum = null where 1;
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的Liquibase更改脚本时,某些执行仍然失败,并出现以下错误...

invoking liquibase change script with file /tmp/deploywork/db.changelog-master.xml
running /usr/java/liquibase/liquibase  --logLevel=info --driver=com.mysql.jdbc.Driver --classpath=/usr/java/jboss/modules/com/mysql/main/mysql-connector-java-5.1.22-bin.jar --changeLogFile=/tmp/deploywork/db.changelog-master.xml --url="jdbc:mysql://myservername:3306/my_db" --username=username --password=password update 
INFO 5/13/15 2:15 PM: liquibase: Successfully acquired change log lock
INFO 5/13/15 2:15 PM: liquibase: Reading from my_db.DATABASECHANGELOG
INFO 5/13/15 2:15 PM: liquibase: Successfully released change log lock
Unexpected error running Liquibase: Validation Failed:
     3 change sets check sum
          db.changelog-1.0.xml::1357593229391-25::rob (generated) is now: 7:5cfe9ecd779a71b6287ef2360a6979bf
          db.changelog-7.0.xml::create-address-email-index::davea is now: 7:da0132e30ebd6a1bc52d9a39bb8c56d7
          db.changelog-7.0.xml::add-myproject-event-object-id-col::davea is now: …
Run Code Online (Sandbox Code Playgroud)

checksum liquibase

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

JavaScript CRC32

我正在寻找CRC32 的现代 JavaScript实现.

此实现,这可能起源于这里,现在这里无处不在,是不可接受的,因为它的速度慢(500毫秒/ MB),并在空格分隔表的2KB取决于使用SUBSTR访问.呸!

CRC32似乎有一些变化,所以我需要匹配这个输出:

mysql> SELECT CRC32('abcde');
> 2240272485
Run Code Online (Sandbox Code Playgroud)

然而,函数实际上不需要接受字符串,因为我正在使用字节数组.

javascript crc32 checksum

35
推荐指数
5
解决办法
3万
查看次数

Google Drive MD5校验和文件

我不是程序员,只是Google云端硬盘的常规用户.我想看看文件是否正确上传.我在OAuth 2.0 Playground中查看了列出所有文件的整个过程,显示了MD5校验和,但每个文件还有大量信息.如果我上传新文件,则很难搜索它并验证其md5校验和.

是否有更简单的方法(通过应用程序,可能?)显示/列出上传文件的MD5校验和?我想知道为什么"细节"窗格没有它,只列出文件大小(以字节为单位).

checksum md5 google-drive-api

35
推荐指数
3
解决办法
2万
查看次数

强大而快速的校验和算法?

您可以在以下用例中推荐哪种校验和算法?

我想生成小JPEG文件的校验和(每个~8 kB),以检查内容是否发生了变化.遗憾的是,使用文件系统的修改日期不是一个选项.
校验和不需要加密强,但它应该强有力地指示任何大小的变化.

第二个标准是速度,因为它应该可以每秒处理至少数百个图像(在现代CPU上).

计算将在具有多个客户端的服务器上完成.客户端通过千兆TCP将映像发送到服务器.所以没有磁盘I/O作为瓶颈.

algorithm checksum image

33
推荐指数
6
解决办法
3万
查看次数

确定.NET程序集是否是从同一源构建的

有没有人知道比较两个.NET程序集以确定它们是否是从"相同"源文件构建的方法?

我知道有一些差异实用程序可用,例如Reflector的插件,但我对查看GUI中的差异不感兴趣,我只是想要一种自动方式来比较二进制文件的集合,看看它们是否是从相同(或等效)的源文件.我知道多个不同的源文件可以产生相同的IL,并且意识到该过程只对IL的差异敏感,而不是原始源.

仅仅比较两个程序集的字节流的主要障碍是.NET包含一个名为"MVID"(模块版本标识符)的程序集.这似乎对每个编译都有不同的值,因此如果您构建相同的代码两次,则程序集将有所不同.

一个相关的问题是,是否有人知道如何强制MVID为每个编译相同?这将避免我们需要具有对MVID值的差异不敏感的比较过程.一致的MVID将是更可取的,因为这意味着可以使用标准校验和.

这背后的背景是,在我们被允许发布到Production之前,第三方公司负责独立审核和签署我们的版本.这包括查看源代码.他们希望独立确认我们提供的源代码与我们之前构建,测试并且当前计划部署的二进制文件相匹配.我们正在寻找一个允许它们从我们提供的源中独立构建系统的过程,并将校验和与我们测试的二进制文件的校验和进行比较.

BTW.请注意,我们正在使用持续集成,自动构建,源代码控制等.该问题与内部缺乏对源文件进入给定构建的控制无关.问题在于,第三方负责验证我们提供的来源是否与我们测试过并计划投入生产的二进制文件相同.他们不应该信任我们的任何内部系统或控件,包括构建服务器或源代码控制系统.他们所关心的只是获取与构建相关的源,自己执行构建,并验证输出是否与我们所说的部署相匹配.

比较解决方案的运行速度并不是特别重要.

谢谢

.net il checksum assemblies binary-reproducibility

29
推荐指数
4
解决办法
4918
查看次数