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のオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ
実装例
基本例
# 完全な実装例を提供します
手順
- セットアップ: 開発環境の設定
- データ: 必要なデータの準備
- 実装: コア機能の構築
- テスト: 動作確認
- 最適化: パフォーマンスの向上
よくあるエラー
| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |
コード例
import sys
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
参考資料
- 公式ドキュメント
- APIリファレンス
- オープンソース例
- コミュニティディスカッション