0

私はcである種のxorファイル暗号化とjavascriptでの復号化を試みています(これを基礎として使用していますが、今のところ次の問題で立ち往生しています:

たとえば73^122、C でやりたいとします。結果は です57が、JavaScript で同じ操作を行うと が得られ51ます。なぜこれが起こっているのですか?それを修正する適切な方法は何ですか?

これは暗号化関数の C コードです。

void encrypt_data(FILE* input_file, FILE* output_file, char* key)
{
  int key_count = 0; //Used to restart key if strlen(key) < strlen(encrypt)
  int encrypt_byte;

  while( (encrypt_byte = fgetc(input_file)) != EOF) //Loop through each byte of file until EOF
  {
    //XOR the data and write it to a file
    fputc(encrypt_byte ^ key[key_count], output_file);
    printf("original %d\n", encrypt_byte); //yields 73
    printf("xoring with %d\n", key[key_count]); // yields 122
    printf("xored %d\n", encrypt_byte ^ key[key_count]); // yields 57
    break; //breaking just for example purpose

    //Increment key_count and start over if necessary
    key_count++;
    if(key_count == strlen(key))
        key_count = 0;
  }
}
4

2 に答える 2