私はウェブサイトとArduinoの間の通信を確立しようとしています。私は自分のウェブサイトからArduinoまでのすべてのメッセージを認証する必要があるので、時間のかかる方法がより少なくても、XTEA暗号を使用していることが分かりました。PHPでのXTEA暗号化とCでの復号化
ウェブサイトのための私のPHPコードは:
mcrypt_encrypt(MCRYPT_XTEA, 'qwertyuiasdfghjk', 'asdfasdf', MCRYPT_MODE_ECB);
"qwertyuiasdfghjkは" 128 キービットと "asdfasdf" である場合は、64 ビットメッセージです。私が使用しているArduinoの側で
:それはまだ64を持っchar dest[9]; //Destination
char v[9]; //Encrypted message
char k[17]; //Key
が、私の復号化されたメッセージは、遠く離れた元のメッセージからです...:パラメータは
void _xtea_dec(void* dest, const void* v, const void* k)
{
uint8_t i;
uint32_t v0=((uint32_t*)v)[0], v1=((uint32_t*)v)[1];
uint32_t sum=0xC6EF3720, delta=0x9E3779B9;
for(i=0; i<32; i++)
{
v1 -= ((v0 << 4^v0 >> 5) + v0)^(sum + ((uint32_t*)k)[sum>>11 & 3]);
sum -= delta;
v0 -= ((v1 << 4^v1 >> 5) + v1)^(sum + ((uint32_t*)k)[sum & 3]);
}
((uint32_t*)dest)[0]=v0; ((uint32_t*)dest)[1]=v1;
}
ビットですが、それはまったく違っています...
どうすればよいですか?
(これは私がここに質問を初めて、通常、私はすべての私の質問は、どこかでスタックオーバーフロー で解決されている...)
はい!!!!私はあなたの助言に続き、最終的にそれは動作します! – uDalillu