📘

BlobのMD5ハッシュを検証する

2023/03/29に公開

はじめに

Blobコンテナーにファイルをアップロードすると自動的にMD5ハッシュが計算されて付与される。
付与されたハッシュ値はプロパティのCONTENT-MD5で確認できる。

ダウンロードしたファイルのハッシュを計算しBlobのプロパティの値と突き合わせることで、
ダウンロードしたファイルが破損していないかを検証する。

単にmd5sumすれば良いと考えていたが、そんなに単純ではなかったため、手順を記載する。

Blobのプロパティに含まれるmd5ハッシュを確認

まずはBlobのプロパティからMD5ハッシュを確認。

$ export AZURE_STORAGE_ACCOUNT="<storage accout name>"
$ export AZURE_STORAGE_KEY="<storage account access key>"
$ container="<container name>"
$ file="<blob file>"
$ az storage blob list -c $container --prefix $file \
    --query [].properties.contentSettings.contentMd5 -o tsv
PfmYGeV0tf8ugorXav7ekQ==

ファイルのMD5ハッシュが「PfmYGeV0tf8ugorXav7ekQ==」と確認できた。

ダウンロードしたファイルのハッシュを計算

BlobをダウンロードしたあとMD5を計算し、上記のハッシュと一致するか確認する。
opensslが使える場合は以下。

$ openssl dgst -md5 -binary $file | base64
PfmYGeV0tf8ugorXav7ekQ==

md5sumコマンドの場合は以下。

$ md5sum --binary $file | awk '{print $1}' | xxd -p -r | base64
PfmYGeV0tf8ugorXav7ekQ==

Discussion