13

Is there any Built-In Checksum utility for Windows 10 using CRC-32? I checked different answers which are old and mention certUtil, but that does not support CRC-32 or CRC-64.

Update: I had also checked Is there a built-in checksum utility on Windows 7?, however, that's an old question and does not specifically asks for CRC-32 and Windows 10 may have support for it now. That's why asking this.

7 Answers7

16

There is a way to get the CRC-32 on Windows (since Win 7):

  1. Right-click the file(s) you wish to get the CRC-32 for and click Send toCompressed (zipped) folder.
  2. Open the ZIP file using Windows Explorer, set the view to details.
  3. Right-click on the detail header and select the CRC-32 column to be visible.
  4. Resize columns so the CRC-32 is visible.
  5. There you go!

Explorer providing CRC-32

7

7-Zip provides an additional Windows Explorer context menu entry from which checksums can be calculated:

  1. Right-click the file you wish to get the CRC-32 for. A context menu appears.
  2. Select the CRC SHA submenu entry.
  3. Select any of the available algorithms: CRC-32, CRC-64, SHA-1 or SHA-256 to calculate the respective checksum, or select "*" to calculate all of them and additionally BLAKE2sp.
Trudy
  • 179
  • 1
  • 4
3

I opened the .zip with Windows Explorer, the right-clicked the file to show properties in order to see the CRC32 value:

properties

Peregrino69
  • 5,004
3

For Windows 10, I can offer a powershell solution to read RtlComputeCrc32 API on Ntdll.dll.

param (
    [Parameter(Mandatory=$true)]
    [string]$InputFile
)

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); } "@

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 "CRC32: 0x$crc32String" #Just to keep Powershell window open. Remove this line for non-interactive usage. pause

Save this script as a file like crc32.ps1 You can run on windows console as

Powershell -ExecutionPolicy Bypass -File crc32.ps1 -InputFile SomeFile.bin
Cem Polat
  • 131
2

Wrapped the code from Cem Polat into a function. It's working fine and fast! Thanks 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

}

0

OpenHashTab is nice tools recomended as do the job https://github.com/namazso/OpenHashTab/releases/tag/v3.0.4 enter image description here

-1

On my side it works, but you MUST be in the ziped folder via the windows explorer. Then, once inside, you can see the CRC-32 column option.

Benoit
  • 1