私の前の質問はpontではなかったと思います。私は正確に何が欲しいか説明しようとしています。 "arduino(c)とviceversaでjavaとdecryptaからデータを暗号化しようとしていますASCIIからHEXへの変換が間違った値になっています
私は多くの3des + ecb暗号化をJavaで試しましたが、私は別のコードで別の答えを得ていました。また、私は同じ「C」コードを使用することができますArduinoの終わりにJNIとIAMなっ正しいanswer.soを使用してJavaのためのライブラリとしてCコードを使用する
今私はポイントに来てみましょう:。
私はjavaから "C"にjni(netbeans)を使ってplain_textを送信しています。データを暗号化して、 "cから暗号化されたデータを受け取ります"(prob)。次にデータをarduino.DECRYPTに送信します。 c code.Th暗号化を使用してarduinoからENCRYPTedデータを送信すると、もう一方の端(アプリ)でdecyptして使用します。
これはクリアだと思います。
問題: 正しい暗号文をcから受け取る方法はわかりません。
unsigned char *enc_data_return=(char*)malloc(100);
enc_data_return=tdes_encrypt(32, plain_text, encrypted_text);("tdes_encrypt is the method iam using to encrypt i think that code is not needed here if u want i will send late")
私は暗号化されたデータの進に正しい値を取得していますポインタ値(Iは、3DESのオンラインツールを使用してチェック)
のprintf( "%の2倍"、*(enc_data_return + 30))を印刷します。
TDES暗号文ブロック0: 39 39 85 E3 7 9aはE4 EB
TDES暗号文ブロック1:86 6F 7C CE 23 34 F4のD7: 68 61 8F 31 B6のA5のB
TDES暗号文ブロック2 CA
TDES暗号文ブロック3: C1 9F C5 8bはA0 C3 D7の六角IAMで82
は暗号化されたデータの正確な値を得ることが、私はJSTRINGに変換する際、IAMなっ 99ãäëÊha1¶¥|Î#40×o_ŋÃׂ が、期待値は 99ã jstring jstrBuf =(* env) - > NewStringUTF(env、enc_data_return);
私もbte配列で試しました jbyteArray array =(* env) - > NewByteArray(env、l);() - > SetByteArrayRegion(env、array、0、l、(jbyte)(enc_data_return));
同じ問題に直面し
私は私を助けてください、暗号化されたデータを取得する方法を知りません。これらの暗号化されたデータはASCII以外のASCII文字です。だから、すべてのコンバータをc endとjava endが間違った値を与えてしまいます.soは、私は直接c endからjavaに16進値を送ることができます。 "それは不可能なiguess"ですが、もし私に解決策を教えてくれれば教えてください。
私を助けてください。
3DESが必要な場合は、Javaに統合された3DES暗号を使用します。 – Robert
なぜ暗号化されたデータを 'String'として表現できると思いますか? –
私の必要条件私はJavaでデータを暗号化/復号化する必要があります。私の友人は3des + ecb暗号化を行うために非常に多くのコードを参照してくれたので、最初にc.soで暗号化/復号化します。 data.so私は最終的にjniを使用することに決めました。 –