ハッシュ関数とHMAC
🔥 Vibe プロンプト
「SHA-256、SHA-3、SHA-512のハッシュ速度を比較。API認証用にHMACを実装。」
import hashlib, hmac, time
def bench_hash(name, data, func):
start = time.time()
for _ in range(100000):
func(data).hexdigest()
elapsed = time.time() - start
print(f"{name}: {elapsed:.2f}s ({100000/elapsed:.0f}/秒)")
data = b"Hello, Security!" * 1000
bench_hash("SHA-256", data, hashlib.sha256)
bench_hash("SHA-512", data, hashlib.sha512)
bench_hash("SHA-3-256", data, hashlib.sha3_256)
bench_hash("BLAKE2b", data, hashlib.blake2b)
# HMAC
secret_key = b"api-secret-key-12345"
message = b"GET /api/orders 1700000000"
hmac_sig = hmac.new(secret_key, message, hashlib.sha256).hexdigest()
print(f"HMAC-SHA256: {hmac_sig}")
応用
- パスワード保存
- ファイル整合性
- API認証(HMAC)
- ブロックチェーン
- デジタル署名
章のまとめ
- コアコンセプトと原理を理解
- 実装方法とテクニックを習得
- 一般的な問題と解決策に精通
- 実際のプロジェクトに適用可能
さらに読む
- 公式ドキュメントとAPIリファレンス
- GitHubのオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ
実装例
基本例
# 完全な実装例を提供します
手順
- セットアップ: 開発環境の設定
- データ: 必要なデータの準備
- 実装: コア機能の構築
- テスト: 動作確認
- 最適化: パフォーマンスの向上
よくあるエラー
| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |
コード例
import sys
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
参考資料
- 公式ドキュメント
- APIリファレンス
- オープンソース例
- コミュニティディスカッション