diff options
| author | srdusr <trevorgray@srdusr.com> | 2025-09-24 05:01:20 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2025-09-24 05:01:20 +0200 |
| commit | 553cb2204b0bf27afe13c6332f5679bbd47172a0 (patch) | |
| tree | 75c86ff018122a682e0afd7a0e2a0228a63e44bd /unix/virt/checksum.sh | |
| parent | b20e4e004be74884cc72c57a3128e36fd5177d7a (diff) | |
| download | dotfiles-553cb2204b0bf27afe13c6332f5679bbd47172a0.tar.gz dotfiles-553cb2204b0bf27afe13c6332f5679bbd47172a0.zip | |
Update/Overhaul
Diffstat (limited to 'unix/virt/checksum.sh')
| -rwxr-xr-x | unix/virt/checksum.sh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/unix/virt/checksum.sh b/unix/virt/checksum.sh new file mode 100755 index 0000000..adb6a24 --- /dev/null +++ b/unix/virt/checksum.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Check if the correct number of arguments are provided +if [[ $# -ne 2 ]]; then + echo "Usage: checksum <file> <website>" + exit 1 +fi + +FILE=$1 +CHECKSUM_PAGE=$2 + +# Fetch the HTML content of the page +HTML_CONTENT=$(curl -s "$CHECKSUM_PAGE") + +# Try searching for checksums with a more targeted approach, like matching a checksum pattern or look for files with checksum labels +CHECKSUM=$(echo "$HTML_CONTENT" | grep -oP '([a-f0-9]{64})' | head -n 1) # Try specifically looking for SHA256 checksum patterns + +# Check if any checksum was found +if [[ -z "$CHECKSUM" ]]; then + echo "Checksum not found on the page." + exit 1 +fi + +# Calculate the checksum of the file locally +LOCAL_CHECKSUM=$(sha256sum "$FILE" | awk '{print $1}') + +echo "Local checksum: $LOCAL_CHECKSUM" +echo "Remote checksum: $CHECKSUM" + +# Compare the local checksum with the one from the website +if [[ "$LOCAL_CHECKSUM" == "$CHECKSUM" ]]; then + echo "The checksums match! The file is verified." + +else + echo "The checksums do not match. The file may be corrupted or tampered with." +fi |
