unsigned char 配列を 16 個の 16 進数値で初期化したいと考えています。ただし、これらの値を適切に初期化/アクセスする方法がわからないようです。直感的にアクセスしようとしても、まったく価値がありません。
これは私の出力です
The program was run with the following command: 4
Please be a value! -----> p
Here's some plaintext
以下のコードで実行すると -
int main(int argc, char** argv)
{
int n;
if (argc > 1) {
n = std::stof(argv[1]);
} else {
std::cerr << "Not enough arguments\n";
return 1;
}
char buff[100];
sprintf(buff,"The program was run with the following command: %d",n);
std::cout << buff << std::endl;
unsigned char plaintext[16] =
{0x0f, 0xb0, 0xc0, 0x0f,
0xa0, 0xa0, 0xa0, 0xa0,
0x00, 0x00, 0xa0, 0xa0,
0x00, 0x00, 0x00, 0x00};
unsigned char test = plaintext[1]^plaintext[2];
std::cout << "Please be a value! -----> " << test << std::endl;
std::cout << "Here's some plaintext " << plaintext[3] << std::endl;
return 0;
}
文脈上、これは学校のグループ プロジェクトの一部です。私たちは最終的に Serpent 暗号を実装しようとしていますが、unsigned char 配列に悩まされ続けています。私たちのプロジェクト仕様では、Java のバイト配列となるものを受け取る 2 つの関数が必要であると述べています。C++ で最も近いものは unsigned char[] だと思います。それ以外の場合は、ベクトルを使用します。コードの他の場所で、unsigned char 配列を取り、その値を 4 つの long long int (キーは 256 ビットである必要があります) にパックし、それらの int に対してさまざまなビットシフトおよび xor 操作を実行して、暗号化アルゴリズムに必要なキー。私がやろうとしていることの十分な背景であることを願っています。ここでは、基本的な C++ 機能を見落としているだけだと思います。助けてくれてありがとう!