0

以下のクラスを 2 回オーバーロードすることになっています。1 回は AES (Rijndael) で、もう 1 回は Twofish で実装することになっています。ただし、単一のブロックのみを暗号化できる単純な実装が見つからないようです。私が見つけた実装には、CBC とパディングが含まれています。ヒントはありますか?

#ifndef CRYPTER_H
#define CRYPTER_H

#include <valarray>

class Crypter {
public:
    Crypter();
    virtual ~Crypter();

    //Encrypts a single block of 16 byte.
    virtual std::valarray<unsigned char> encrypt(std::valarray<unsigned char> plaintext,
            std::valarray<unsigned char> passphrase) = 0;

    //Decrypts a single block of 16 byte.
    virtual std::valarray<unsigned char> decrypt(std::valarray<unsigned char> cyphertext,
            std::valarray<unsigned char> passphrase) = 0;     
};
#endif  /* CRYPTER_H */
4

1 に答える 1

1

Openssl は C/C++ に最適な暗号化ライブラリであり、一見の価値があると思います。

いつでも自分でデータをブロックに分割し、ライブラリ関数で暗号化/復号化できます。

于 2015-09-02T11:46:13.957 に答える