标签: checksum

同时校验和和管道输入

我想将大文件从一台计算机安全地移动到另一台计算机,在存储之前必须对其进行处理。

我想将文件通过管道传输到运行处理脚本的 ssh 中。

local.example.com$ cat file | ssh remote.example.com process.sh
Run Code Online (Sandbox Code Playgroud)

(如果您有比我更好的想法,请提出)

在处理脚本中,我想在保存文件之前对文件进行校验和加密。问题来了。

解决方案可能有两种:

  • 通过管道输入到两个命令(cksum 和 openssl);但我发现的所有方法看起来都很复杂并且是次可选的。
  • hack cksum 也可以做类似猫的工作并在 stderr 上打印结果,这样我就可以做

    cksum --pipe | openssl enc > myfile
    
    Run Code Online (Sandbox Code Playgroud)

    并通过 stderr 返回校验和。不幸的是,我查看了代码,似乎很难在不造成性能/缓冲损坏的情况下做到这一点;)

可能有一个 cksumming-transfer 工具可以完成这一切,但我没有想到。无论如何,我想避免非标准和复杂的东西。

多谢。

编辑:关于答案的有用链接http://www.linuxjournal.com/content/shell-process-redirection

unix bash checksum pipe

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

HTTP 使用校验和吗?为什么/为什么不呢?

据我了解,TCP 有一个相对可靠的校验和机制,但返回误报的可能性很小。

HTTP 是否使用应用程序级校验和(可能是哈希值)?如果没有,为什么?

checksum tcp http

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

使用 Java 检查重复文件内容

我们有一个 150 Gb 的数据文件夹。其中,文件内容可以是任何格式(doc、jpg、png、txt 等)。我们需要相互检查所有文件内容以检查是否有重复的文件内容。如果是,则打印文件路径名列表。为此,我首先使用ArrayList<File>存储所有文件,然后使用FileUtils.contentEquals(file1, file2)方法。当我尝试处理少量文件(文件夹)时,它可以工作,但是对于这个 150Gb 数据文件夹,它没有显示任何结果。我认为首先将所有文件存储在 ArrayList 中会产生问题。JVM 堆问题,我不确定。

任何人都有更好的建议和示例代码来处理如此大量的数据?请帮我。

java algorithm collections checksum fileutils

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

如何检查正确上传的 Azure 存储 BLOB 文件?

我已使用 AzCopy 实用程序将一个大型 zip 存档上传到 Azure 存储 BLOB 容器(约 9GB)。现在我想检查它是否正确。我可以从 Azure 门户获取文件的“CONTENT-MD5”值。然后我需要在我这边计算这个,对吗?有没有其他方法来检查有效性(除了下载这个文件)?它是使用 7zip 实用程序存档的,该实用程序没有用于 MD5 的哈希算法。

checksum md5 azure azure-storage-blobs

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

Ansible:如何检查本地和远程文件集的 sha1 校验和

我希望能够根据本地目录中的文件列表进行校验和。然后能够获取这些文件校验和并将其与远程系统上相同文件的校验和进行比较。

我知道我可以通过以下方式获得

# Local File
- stat:
   path: "{{ playbook_dir }}/roles/common/files/myfile.dat"
   checksum_algorithm: sha1
  delegate_to: localhost
  run_once: true
  register: localsha_result

# Remote file
- stat:
   path: "{{ rmt_dest_dir }}/myfile.dat"
   checksum_algorithm: sha1
  register: sha_result
Run Code Online (Sandbox Code Playgroud)

我试图遍历我想要校验和的文件:

# Gather Files
- name: gather names of files
  local_action: shell  ls {{ playbook_dir }}/roles/common/files/*.dat | awk -F '/' '{ print $NF }'
  register: datfiles

# Local File 
- stat:
   path: "{{ playbook_dir }}/roles/common/files/{{ item }}"
   checksum_algorithm: sha1
  with_items: "{{ datfiles.stdout_lines }}"
  delegate_to: localhost
  run_once: true
  register: …
Run Code Online (Sandbox Code Playgroud)

checksum loops stat ansible

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

使用 boto3 客户端检索 s3 对象的 Etag

有一种场景,我需要验证存储在 s3 存储桶中的文件的校验和(md5)。这可以在上传文件时通过在 api 调用的元数据中指定校验和值来实现。但就我而言,我想在以编程方式将数据放入存储桶后验证校验和。S3 中的每个对象都有一个名为“ETag”的属性,它是 S3 计算的 md5 校验和。

无论如何要获取特定对象的 ETag 并在 python 脚本中使用 boto3 客户端比较存储在 s3 中的本地文件和文件的校验和?

checksum amazon-s3

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

检查多个文件之间重复数据的最有效方法是什么?

假设您有一个文件夹,其中包含可能包含不同信息的成百上千个.csv.txt文件,但您想确保它joe041.txt实际上不包含joe526.txt意外的相同数据。

与其将所有内容都加载到一个文件中(如果每个文件都有数千行,这可能会很麻烦),我已经开始使用 Python 脚本来基本上读取目录中的每个文件并计算校验和,然后您可以在数千行之间进行比较的文件。

有没有更有效的方法来做到这一点?

即使使用filecmp了,这似乎不太有效,因为模块只有文件VS文件目录VS目录比较,但没有文件VS DIR命令-即使用它,这意味着你不得不遍历通过X ²次(所有文件dir对所有中的其他文件dir)。

import os
import hashlib

outputfile = []

for x in(os.listdir("D:/Testing/New folder")):
    with open("D:/Testing/New folder/%s" % x, "rb") as openfile:
        text=openfile.read()
        outputfile.append(x)
        outputfile.append(",")
        outputfile.append(hashlib.md5(text).hexdigest())
        outputfile.append("\n")

print(outputfile)

with open("D:/Testing/New folder/output.csv","w") as openfile:
    for x in outputfile:
        openfile.write(x)
Run Code Online (Sandbox Code Playgroud)

python checksum

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

如何快速计算校验和?

我想计算校验和。我对 crc 的预期答案是 0xE1 但是当我运行这段代码时它返回 0。我没有得到任何解决方案来做到这一点。请帮我解决这个问题。下面是我试过的代码。

我的视图控制器:

    class ViewController: UIViewController {
    var checkSum:UInt8 = 0
    override func viewDidLoad() {
            super.viewDidLoad()
    let bytes = [0x01,0x0B,0x00,0x0B,0x03,0x07,0x12,0x0E,0x0C,0x10,0x09,0x12,0x0C,0x19,0x09,0xFF,0x14]
        for item in bytes {
            print(calculateCheckSum(crc: checkSum, byteValue: UInt8(item)))
        }
    }

func calculateCheckSum(crc:UInt8, byteValue: UInt8) -> UInt8 {

        let generator = 0x1D

        checkSum = crc ^ byteValue

        for _ in 1...8 {
            if (crc & 0x80 != 0) {
                checkSum = (crc << 1) ^ UInt8(Int8(generator))
            }
            else {
                checkSum <<= UInt8(1)
            }
        }
        return crc …
Run Code Online (Sandbox Code Playgroud)

checksum ios swift

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

Python比较本地和远程文件MD5哈希

我正在尝试比较本地和远程文件 MD5 哈希(我在 wamp“www”目录中复制/粘贴的同一个文件),但我不明白为什么“校验和”不对应......

这是校验和代码:

#-*- coding: utf-8 -*-

import hashlib
import requests

def md5Checksum(filePath,url):
    if url==None:
        with open(filePath, 'rb') as fh:
            m = hashlib.md5()
            while True:
                data = fh.read(8192)
                if not data:
                    break
                m.update(data)
            return m.hexdigest()
    else:
        r = requests.get(url, stream=True)
        m = hashlib.md5()
        for line in r.iter_lines():
            m.update(line)
        return m.hexdigest()

print "checksum_local :",md5Checksum("projectg715gb.pak",None)
print "checksum_remote :",md5Checksum(None,"http://testpangya.ddns.net/projectg715gb.pak")
Run Code Online (Sandbox Code Playgroud)

我很惊讶得到这个输出:

checksum_local : 9d33806fdebcb91c3d7bfee7cfbe4ad7
checksum_remote : a13aaeb99eb020a0bc8247685c274e7d
Run Code Online (Sandbox Code Playgroud)

“projectg715gb.pak”的大小为14.7Mb

但是,如果我尝试使用文本文件(大小为 1Kb):

print "checksum_local :",md5Checksum("toto.txt",None)
print "checksum_remote :",md5Checksum(None,"http://testpangya.ddns.net/toto.txt")
Run Code Online (Sandbox Code Playgroud)

然后它工作oO我得到这个输出:

checksum_local : f71dbe52628a3f83a77ab494817525c6
checksum_remote : …
Run Code Online (Sandbox Code Playgroud)

python hash checksum md5

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

当我对 Ethereum 和 RSK 使用相同的种子短语时,为什么我的地址大写不同?

如果我在 ETH 和 RSK 网络中导入相同的私钥,则帐户相同但大小写不同。为什么是这样?这个可以吗?

checksum seed ethereum rsk

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