Windows 10 是否有使用 CRC-32 的内置校验和实用程序?

Windows 10 是否有使用 CRC-32 的内置校验和实用程序?

是否有使用 CRC-32 的 Windows 10 内置校验和实用程序?我检查了不同的答案,这些答案很旧并且提到了 certUtil,但不支持 CRC-32 或 CRC-64。

更新:我也检查过了Windows 7 上是否有内置校验和实用程序?但是,这是一个老问题,并没有明确要求 CRC-32,Windows 10 现在可能支持它。这就是为什么问这个问题。

答案1

有一种方法可以在 Windows 上获取 CRC-32(自 Win 7 起):

  1. 右键单击要获取 CRC-32 的文件,然后单击发给压缩文件夹
  2. 使用 Windows 资源管理器打开 ZIP 文件,将视图设置为详细信息。
  3. 右键单击详细信息标题并选择可见的 CRC-32 列。
  4. 调整列大小以使 CRC-32 可见。
  5. 就这样!

提供 CRC-32 的 Explorer

答案2

7-Zip提供了一个额外的 Windows 资源管理器上下文菜单项,可以从中计算校验和:

  1. 右键单击要获取 CRC-32 的文件。将出现上下文菜单。
  2. 选择CRC SHA子菜单条目。
  3. 选择任何可用的算法:CRC-32CRC-64SHA-1或者SHA-256计算相应的校验和,或选择“*“计算所有这些,并另外布莱克2sp

答案3

我使用 Windows 资源管理器打开了 .zip,然后右键单击文件以显示属性以查看 CRC32 值:

特性

答案4

将 Cem Polat 的代码包装成一个函数。它运行良好且快速!谢谢 Cem!

Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;

public class Win32Api {
    [DllImport("ntdll.dll")]
    public static extern uint RtlComputeCrc32(uint dwInitial, byte[] pData, int iLen);
}
"@

function Get-CRC32 {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true,ValueFromPipeline = $true)]
        [string]$InputFile
    )
    Write-host $InputFile
    # Read the file as bytes
    $fileBytes = [System.IO.File]::ReadAllBytes($InputFile)

    # Calculate the CRC32 checksum using the Win32 API
    $crc32 = [Win32Api]::RtlComputeCrc32(0, $fileBytes, $fileBytes.Length)

    # Convert the CRC32 value to hexadecimal string
    $crc32String = $crc32.ToString("X8")

    # Display the CRC32 checksum
    Write-Output $crc32String
}

相关内容