12,925
回編集
598行目: | 598行目: | ||
class SecureAESCrypto { | class SecureAESCrypto { | ||
public: | public: | ||
// | // 安全な鍵の生成 | ||
static QByteArray generateKey() | static QByteArray generateKey() | ||
{ | { | ||
609行目: | 609行目: | ||
} | } | ||
// | // 安全な初期化ベクトル (IV) の生成 | ||
static QByteArray generateIV() | static QByteArray generateIV() | ||
{ | { | ||
619行目: | 619行目: | ||
return iv; | return iv; | ||
} | } | ||
// 平文を暗号化 | |||
static QByteArray encrypt(const QByteArray &plaintext, const QByteArray &key, QByteArray &iv) | static QByteArray encrypt(const QByteArray &plaintext, const QByteArray &key, QByteArray &iv) | ||
{ | { | ||
638行目: | 639行目: | ||
} | } | ||
// 暗号文を復号 | |||
static QByteArray decrypt(const QByteArray &ciphertext, const QByteArray &key, const QByteArray &iv) | static QByteArray decrypt(const QByteArray &ciphertext, const QByteArray &key, const QByteArray &iv) | ||
{ | { | ||
656行目: | 658行目: | ||
} | } | ||
// 暗号文と初期化ベクトル (IV) をファイルに保存 | |||
static bool saveEncryptedData(const QString &filename, const QByteArray &data, const QByteArray &iv) | static bool saveEncryptedData(const QString &filename, const QByteArray &data, const QByteArray &iv) | ||
{ | { | ||
672行目: | 675行目: | ||
} | } | ||
// ファイルから暗号文と初期化ベクトル (IV) を読み込む | |||
static bool loadEncryptedData(const QString &filename, QByteArray &data, QByteArray &iv) | static bool loadEncryptedData(const QString &filename, QByteArray &data, QByteArray &iv) | ||
{ | { | ||
767行目: | 771行目: | ||
<u>ファイルの暗号化や大量のデータの暗号化を行う場合は、メモリ使用量を考慮してストリーミング暗号化を行う。</u><br> | <u>ファイルの暗号化や大量のデータの暗号化を行う場合は、メモリ使用量を考慮してストリーミング暗号化を行う。</u><br> | ||
<br> | <br> | ||
==== サンプルコード : CFBモード ==== | ==== サンプルコード : CFBモード ==== | ||
以下の例では、CFBモードを使用して、暗号化および復号を行っている。<br> | 以下の例では、CFBモードを使用して、暗号化および復号を行っている。<br> |