18章「暗号関連」の対策ポイントと例題
18章「暗号関連」からは本番40問中1問が出ます。ハッシュと乱数の使い分けを問う、出題数の最も少ない章です。
- hashlib
- hmac
- secrets
- base64
- cryptography
この章の出題数と位置づけ
18章「暗号関連」からは本番40問のうち1問が出題されます。 全体に占める割合は2.5%で、15章中14番目タイの出題数です(同じ1問の章が他に1章あります)。 合格に必要なのは28問正解(12問まで不正解可)なので、 この章の1問をどこまで取りに行くかは、他の章との兼ね合いで決めるのが現実的です。
対策のポイント
- hashlib のハッシュは不可逆で、元に戻せません。暗号化(戻せる)との区別が問われます。
- hashlib.sha256 には bytes を渡す必要があり、str をそのまま渡すとエラーになります。
- パスワードやトークンの生成には random ではなく secrets を使う、という点が狙われます。
- base64 は暗号ではなくエンコード方式である、という基本の区別も範囲です。
- 1問しか出ないため、上の4点以上には踏み込まない判断も有効です。
この章の例題(1問)
当サイトで実際に出題している問題から1問を、正解と解説つきで掲載します。 すべて自作のオリジナル問題で、実際の試験問題ではありません。
例題1. パスワードリセット用トークンなど、推測されては困る値を生成したい。使うべき標準モジュールはどれか。
- 正解secrets
- random
- hashlib
- uuid
解説: secrets は暗号学的に安全な乱数を提供する(token_hex、token_urlsafe など)。random はメルセンヌツイスタによる擬似乱数で予測可能なため、この用途には使ってはいけない。hashlib はハッシュ計算であって乱数生成ではない。
この章は当サイトに全1問を収録しています。残りはドリルの「章別に解く」から解けます。