私は TinyOS-2.1.2 を使用しており、セキュリティ技術を実現するために TinyECC-2.0 を使用しています。tinyecc で利用可能な SHA1 を使用したい。しかし、値のハッシュを取ると、
uint8_t data=123;
SHA1.nc で指定された sha の 3 つの関数、つまり SHA1.reset、SHA1.update、SHA1.digest を使用して結果を取得します。しかし、コードを実行するたびに。「make micaz sim」を実行すると、同じデータに対して異なるハッシュ結果が得られます。
取得した各データの一意のハッシュ値を取得する方法は?
コードは次のとおりです。
#include "sha1.h"
module DisseminationC {
uses {
interface SHA1;
}
implementation{
void hash(){
uint8_t x=123;
call SHA1.context(context);
call SHA1.update(context, x, sizeof(x));
call SHA1.digest(context, Message_Digest[SHA1HashSize]);
dbg("All", "%s Hash is : %d \n", sim_time_string(), Message_Digest);
}
以下に示すように、コードに変更を加えました。今、ハッシュ出力を取得しています。しかし、問題は、入力として与えられたすべての異なる数値に対して、同じ答えが得られることです。この問題を解決するにはどうすればよいですか?
私を助けてください..
#include "sha1.h"
module SecurityC{
uses interface Boot;
uses interface SHA1;
}
implementation{
uint8_t Message_Digest[SHA1HashSize];
SHA1Context context;
uint8_t num=123;
uint32_t length=3;
uint8_t i;
event void Boot.booted()
{
dbg("Boot", "Application booted.\n");
call SHA1.reset(&context);
while(length>0)
{
length=length/10;
call SHA1.update(&context, &num, length);
}
call SHA1.digest(&context, Message_Digest);
for(i = 0; i < SHA1HashSize; i++) {
dbg("Boot", "%s KEY IS: %x \n", sim_time_string(), Message_Digest[i]);
}
}
}