-2

私はSHA256を使用して、ループ内のCでハッシュ値を生成しています。また、ハッシュが生成される値とともに、ループのカウンター変数も渡されます。カウンター変数の値は反復ごとに変化するため、SHA256は毎回異なるハッシュを返すことを期待しています。ただし、毎回同じハッシュを返します。助けてください!

前もって感謝します

コード:

int generate_sha256hash { 
  int loop = 0; 
  unsigned char hash_paramters[2] = {0};
  unsigned char device_ids[2] = {0,0}; 
  hash_paramters[0] = 0; 
  unsigned char pass_string = "PASSWORD"; 

   for(loop = 1; loop < 10; loop++) {
     hash_paramters[1] = loop;
     memcpy((unsigned char)(&input_info[0]),(unsigned char )hash_paramters ,2); 
     memcpy((unsigned char)(&input_info[2]),(unsigned char )device_ids,2);
     memcpy((unsigned char)(&device_info[4]),(unsigned char*)au8defaultPwd,8); 

     printf("\n Generating Hash Value "); 

     hash_value = SHA256(device_info,14,au8HashValue); 
   }
} 
4

1 に答える 1

2

ループ内で (カウンターに応じて)変更input_infoしますが、ハッシュ生成には使用しません。のみを使用しますdevice_info)。

そしてunsigned charmemcpy呼び出し内の へのキャストはすべて、実際には へのキャストunsigned char*であると考えています。コードには他の構文上の特徴があります。

于 2012-04-23T12:27:20.730 に答える