AES暗号化

🔥 Vibe プロンプト

「AES-256-GCM暗号化を実装:文字列とパスワードを入力、base64暗号文を出力。」

from cryptography.fernet import Fernet

key = Fernet.generate_key()
cipher = Fernet(key)

encrypted = cipher.encrypt(b"Hello, Vibe Coding!")
print(f"暗号化: {encrypted.decode()}")

decrypted = cipher.decrypt(encrypted)
print(f"復号: {decrypted.decode()}")

AES-256-GCM手動実装

from cryptography.hazmat.primitives.ciphers.aead import AESGCM
import os

aes_key = AESGCM.generate_key(bit_length=256)
aesgcm = AESGCM(aes_key)
nonce = os.urandom(12)

ct = aesgcm.encrypt(nonce, b"秘密のデータ", None)
pt = aesgcm.decrypt(nonce, ct, None)

ベストプラクティス

  • ✅ GCMモードを使用(認証付き暗号化)
  • ✅ 暗号化ごとに新しいナンスを生成
  • ✅ 鍵を安全に保管(KMS、Vaultなど)
  • ✅ 定期的に鍵をローテーション

章のまとめ

  • コアコンセプトと原理を理解
  • 実装方法とテクニックを習得
  • 一般的な問題と解決策に精通
  • 実際のプロジェクトに適用可能

さらに読む

  • 公式ドキュメントとAPIリファレンス
  • GitHubのオープンソース例
  • 技術書とオンラインコース
  • コミュニティディスカッションと技術ブログ

実装例

基本例

# 完全な実装例を提供します

手順

  1. セットアップ: 開発環境の設定
  2. データ: 必要なデータの準備
  3. 実装: コア機能の構築
  4. テスト: 動作確認
  5. 最適化: パフォーマンスの向上

よくあるエラー

| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |

コード例

import sys

def main():
    print("Hello, World!")

if __name__ == "__main__":
    main()

参考資料

  • 公式ドキュメント
  • APIリファレンス
  • オープンソース例
  • コミュニティディスカッション

会員限定無料チュートリアル

このチャプターは登録会員限定の無料コンテンツです!ログインまたは登録してすぐにロックを解除してください。

今すぐログイン / 登録