Ардуино AES зашифрованные коды расшифровать в C#
Приветствие,
Я хочу коды, которые создают шифрование в Arduino-C и могут быть расшифрованы в c#.
возможно ли это ?
Используя алгоритм AES или любой другой algorthim
кто-нибудь мне поможет, может предоставить коды
ЭЙДЖЕЙ
Что я уже пробовал:
#include "AES.h" #include "base64.h" AES aes; void setup() { Serial.begin(9600); Serial.println("\nBooting..."); char b64data[200]; byte cipher[1000]; byte iv [N_BLOCK] ; Serial.println("Let's encrypt:"); // Our AES key. Note that is the same that is used on the Node-Js side but as hex bytes. byte key[] = { 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 }; // The unitialized Initialization vector //byte my_iv[N_BLOCK] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; byte my_iv[N_BLOCK] = { 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 }; // Our message to encrypt. Static for this example. //String msg = "{\"data\":{\"value\":300}, \"SEQN\":700 , \"msg\":\"IT WORKS!!\" }"; String msg = "ABC"; aes.iv_inc(); aes.set_key( key , sizeof(key)); // Get the globally defined key // Print the IV base64_encode( b64data, (char *)my_iv, N_BLOCK); Serial.println(" IV b64: " + String(b64data)); Serial.println("Message: " + msg ); int b64len = base64_encode(b64data, (char *)msg.c_str(), msg.length()); Serial.println (" Message in B64: " + String(b64data) ); Serial.println (" The lenght is: " + String(b64len) ); // For sanity check purpose //base64_decode( decoded , b64data , b64len ); //Serial.println("Decoded: " + String(decoded)); // Encrypt! With AES128, our key and IV, CBC and pkcs7 padding aes.do_aes_encrypt((byte *)b64data, b64len , cipher, key, 128, my_iv); Serial.println("Encryption done!"); Serial.println("Cipher size: " + String(aes.get_size())); b64len = base64_encode(b64data, (char *)cipher, aes.get_size() ); Serial.println ("Encrypted data in base64: " + String(b64data) ); Serial.println("Done..."); String t="vVnzJGbo0IDNBywnkVxGXw=="; // b64len = base64_encode(b64data, (char *)t.c_str(), t.length()); byte plain[1000]; b64len = base64_decode(b64data, b64data, b64len); // aes.do_aes_decrypt((byte *)b64data, b64len, plain, key, 128, my_iv); test(t,key,my_iv,b64len); base64_decode(b64data, (char *)plain, aes.get_size()); Serial.println (" Plain in B64: " + String((char *)plain) ); Serial.println(" Plain size: " + String(aes.get_size())); Serial.println (" Decrypted data in base64: " + String(b64data) ); // Serial.println ("Decrypted data: " + plain ); } /* void adecrypt(String msg, byte key1[], String my_iv) { aes.set_key(key1, sizeof(key1)); char data_decoded[200]; char iv_decoded[200]; byte out[200]; char temp[200]; msg.toCharArray(temp, 200); int b64len = base64_decode(data_decoded, temp, msg.length()); my_iv.toCharArray(temp, 200); base64_decode(iv_decoded, temp, my_iv.length()); aes.do_aes_decrypt((byte *)data_decoded, b64len, out, key1, 128, (byte *)iv_decoded); char message[msg.length()]; base64_decode(message, (char *)out, msg.length()); // return String(message); } */ void test(String msg, byte key1[], byte my_iv[],int b64len1) { // aes.set_key(key1, sizeof(key1)); char data_decoded[200]; char iv_decoded[200]; byte out[200]; char temp[200]; msg.toCharArray(temp, 200); int b64len = base64_decode(data_decoded, temp, msg.length()); // my_iv.toCharArray(temp, 200); base64_decode(iv_decoded, temp, b64len1); aes.do_aes_decrypt((byte *)data_decoded, b64len, out, key1, 128, (byte *)iv_decoded); char message[msg.length()]; base64_decode(message, (char *)out, msg.length()); Serial.println (" Oyair aram data in base64: " + String(message) ); } void loop() { // put your main code here, to run repeatedly: }
Kornfeld Eliyahu Peter
Непонятный...
Вы спрашиваете, можно ли расшифровать в C# то, что было зашифровано в C? Да, это так!
Или вы спрашиваете, что не так с вашим кодом? Откуда нам знать? Вы говорите нам, и мы можем сказать, почему!
alisolution
я сделал зашифрованный код упоминания в c-Arduino и хочу расшифровать его в c#
но когда мы пытаемся расшифровать его в c#, получаем другую ошибку
любой код или URL-адрес помощи.
с уважением
ЭЙДЖЕЙ