--- title: "WKDのz-base-32形式のSHA1ハッシュ生成" description: "WKDのz-base-32形式のSHA1ハッシュを生成する方法について説明します。" date: 2026-07-13 00:03 updated: 2026-07-13 00:03 tags: ["cli", "shell"] lang: "ja" draft: false --- PGP公開鍵をWeb Key Directoryで公開する際に、ユーザーIDのSHA1ハッシュをz-base-32形式で生成する必要がある。 以下のように発行する必要があるらしい。 [Web Key DirectoryでPGPの公開鍵を配布する](https://zkat.hatenablog.com/entry/2022/09/30/212425) > 1. 小文字にする(Joe.Doe → joe.doe) > 2. sha1でハッシュをとる(joe.doe → a83ee94be89c48a11ed25ab44cfdc848833c8b6e) > 3. ハッシュした値(バイナリ)を、Z-Base32でエンコードする(a83ee94be89c48a11ed25ab44cfdc848833c8b6e → iy9q119eutrkn8s1mk4r39qejnbu3n5q) CLIで実行する場合は、以下のようできた。 [z-base-32 Crate](https://crates.io/crates/z-base-32) が助かる。 ```bash $ cargo install --features cli z-base-32 $ zbase32 <(echo -n joe.doe | sha1sum | awk '{printf $1}' | xxd -r -p) iy9q119eutrkn8s1mk4r39qejnbu3n5q ``` もしもキー自体を持っている場合は、以下のようにして確認もできる。 ```bash $ gpg --with-wkd-hash -k name@address ```