标签: checksum

如何构建相同的Linux内核两次源并获得相同的校验和

我正在搜索是否可以构建相同的Linux Kerneltwice(相同的源,相同的环境,相同的选项,相同的编译器)并获得相同的校验和.谁知道怎么做?

linux binary kernel checksum binary-reproducibility

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

如何创建媒体文件的稳定校验和?

如何在没有元数据的情况下创建仅媒体数据的校验和,以获得媒体文件的稳定标识.优选地是具有支持多种格式的库的跨平台方法.例如vlc,ffmpeg或mplayer.

(媒体文件应该是普通格式的音频和视频,图像也很好)

media checksum sha1 ffmpeg mplayer

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

任何人都可以定义Windows PE校验和算法吗?

我想在C#中实现这个

我看过这里:http: //www.codeproject.com/KB/cpp/PEChecksum.aspx

并且我知道ImageHlp.dll MapFileAndCheckSum函数.

但是,出于各种原因,我想自己实现.

我找到的最好的是:http: //forum.sysinternals.com/optional-header-checksum-calculation_topic24214.html

但是,我不明白这个解释.任何人都可以澄清如何计算校验和吗?

谢谢!

更新

我从代码示例中,我不明白这意味着什么,以及如何将其转换为C#

sum -= sum < low 16 bits of CheckSum in file // 16-bit borrow 
sum -= low 16 bits of CheckSum in file 
sum -= sum < high 16 bits of CheckSum in file 
sum -= high 16 bits of CheckSum in file 
Run Code Online (Sandbox Code Playgroud)

更新#2

谢谢,遇到了一些Python代码,不会太相似这里

    def generate_checksum(self):

    # This will make sure that the data representing the PE image
    # is updated with …
Run Code Online (Sandbox Code Playgroud)

c# algorithm checksum portable-executable

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

C - TCP校验和(使用原始套接字) - 如何获取IP地址

raw sockets用于发送TCP数据时,允许保留source ip address零,以便内核输入正确的值.这很有用,尤其IP是在使用多个接口(具有不同地址)时.

我现在的问题是:要计算TCP校验和,我需要知道源IP地址到底是什么.这对我来说似乎不可能?

无论如何确定IP我的传出数据包的来源?

(另一种方法是,将我的原始套接字专门绑定到一个地址,但我宁愿不想这样做).

/编辑:使用Linux

c sockets checksum tcp

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

CRC校验和使用长(64位)

我检查了CRC64的不同实现.例如,这个,这个这个.所有这些的问题是它们使用字节.但是,在64位系统上,我想使用long(8字节).通过这种方式,我需要减少迭代次数.例如,对于128字节的数据,使用a byte,我需要迭代128次,而使用long,我需要迭代16次.

是否有任何CRC64实现使用long甚至字长大于一个字节?可以修改这些方案吗?

c checksum

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

如何验证是否从Web复制源代码

我正在构建一个Web工具来检查提交的内容是从Web获取还是提交者自己的工作.抄袭探测器.

我有一些想法,我可以生成校验和,并将其用作与其他条目进行比较的关键.但是,如果有人做了一些小的更改,比如包括/删除注释,更改变量/函数名等等,那么校验和将会有所不同,所以这种方法不起作用.

有什么更好的方法吗?

security checksum sha code-access-security

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

Python 2.7:使用“ lzma”模块以XZ格式压缩数据

我正在使用Python 2.7.6中的lzma模块进行实验,以查看是否可以为将来的项目使用XZ格式创建压缩文件。我在实验期间使用的代码是:

import lzma as xz

in_file = open('/home/ki2ne/Desktop/song.wav', 'rb')
input_data = in_file.read()

compressed_data = xz.compress(input_data)
out_file = open('/home/ki2ne/Desktop/song.wav.xz', 'wb')
in_file.close()
out_file.close()
Run Code Online (Sandbox Code Playgroud)

与使用普通xz时相比,我注意到生成的文件中有两个不同的校验和(MD5和SHA256)(尽管我可以用两种方法解压缩-两个文件的解压缩版本的校验和都相同)。这会是个问题吗?

更新:我找到了一个修复程序,方法是通过peterjc的Git存储库(从此处链接)安装backport(来自Python 3.3 ),现在它显示的校验和相同。不确定是否有帮助,但是我确保未安装存储库中的LZMA Python模块,以避免可能的名称冲突。

这是我的测试代码以确认这一点:

# I have created two identical text files with some random phrases

from subprocess import call
from hashlib import sha256
from backports import lzma as xz

f2 = open("test2.txt" , 'rb')
f2_buf = buffer(f2.read())
call(["xz", "test1.txt"])

f2_xzbuf = buffer(xz.compress(f2_buf))
f1 = open("test1.txt.xz", 'rb')
f1_xzbuf = buffer(f1.read())

f1.close(); f2.close()

f1sum …
Run Code Online (Sandbox Code Playgroud)

python checksum lzma xz

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

UDP-可选校验和

根据我对UDP的了解,它没有错误处理,没有检查发送/接收的数据序列,没有检查重复的数据包,没有检查损坏的数据包以及显然不能保证已接收发送的数据包。 。

因此,考虑到这一点,为什么实际上在UDP中存在使用校验和的选项?因为可以肯定的是,如果您要确保以正确的顺序接收发送的数据(而不损坏等),则可以使用TCP ...

谢谢你的时间 :)

error-handling checksum udp tcp packet

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

如何在SFTP文件传输期间执行校验和以确保数据完整性?

我需要为SFTP执行校验和(用于数据完整性).我希望这可以在SFTP文件传输期间完成 - 我意识到这可能是产品依赖的(仅供参考:使用CLEO VLTrader),但是想知道这是否习惯?

我也在寻找与使用校验和算法一样好(或更好)的替代数据完整性检查选项.谢谢!

sftp checksum data-integrity

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

获取文件SHA256哈希码和校验和

以前我问了一个关于组合SHA1 + MD5 的问题,但之后我理解计算SHA1然后延迟文件的MD5并不比SHA256快.在我的情况下,4.6 GB文件大约需要10分钟,在Linux系统中使用默认实现SHA256和(C#MONO).

public static string GetChecksum(string file)
{
    using (FileStream stream = File.OpenRead(file))
    {
        var sha = new SHA256Managed();
        byte[] checksum = sha.ComputeHash(stream);
        return BitConverter.ToString(checksum).Replace("-", String.Empty);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我读了这个主题,并以某种方式根据他们所说的改变我的代码:

public static string GetChecksumBuffered(Stream stream)
{
    using (var bufferedStream = new BufferedStream(stream, 1024 * 32))
    {
        var sha = new SHA256Managed();
        byte[] checksum = sha.ComputeHash(bufferedStream);
        return BitConverter.ToString(checksum).Replace("-", String.Empty);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它没有这样的感情,需要大约9分钟.

然后我尝试通过sha256sumLinux中的命令测试我的文件中的相同文件,它需要大约28秒,上面的代码和Linux命令都给出相同的结果!

有人建议我阅读Hash Code和Checksum之间的区别,然后我会谈到这个解释差异的主题.

我的问题是:

  1. 是什么导致上述代码和Linux之间的这种不同sha256sum? …

c# mono checksum hashcode sha256

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