[問題] 新手問 Arduino Code 的通訊加密法

作者: benjenq (Ben(憋))   2017-03-17 16:52:23
大家好,小弟
學習 Arduino Code 新手約一個多月,
有個關於通訊加密的問題請教:
小弟自製手機/平板程式與 Arduino 裝置溝通,
現在要練習將溝通的訊息編碼加密
手機透過AES加密似乎沒什麼問題,
https://github.com/WelkinXie/AESCipher-iOS
也找到不少 Arduino 用的 DES ,
在 Ardiuno 上面跑也都能跑得起來,
但問題來了...
手機將訊息加密的結果,與 Arduino 加密的結果不一樣,
這個 Arduino library 是我最接近成功的時候
https://github.com/spaniakos/AES/
手機使用的 Key 跟 IV 預設 NSString (字串),
在程式中會轉成 byte,
Arduino 的 Key 是 byte,
IV 是 unsigned long long int,
我懷疑是兩邊 IV 不一致,
於是設法把兩邊的 IV 設為長度16的0,
解出來的結果,總是有幾個位元的位置不一樣...
這篇文章說出了我的心聲,
https://goo.gl/PkWdEr
不知是否有前輩在這個議題上(跨平台 PC/平板<
作者: chuegou (chuegou)   2017-03-17 23:28:00
沒經驗...大印地安小印地安?
作者: cs8425 (cs)   2017-03-18 11:02:00
先猜padding方式不同?
作者: benjenq (Ben(憋))   2017-03-18 17:56:00
library沒有提供padding的選項…頭痛我懷疑是Arduino Uno處理器能力不足,多位元計算可能有問題
作者: cs8425 (cs)   2017-03-18 21:01:00
library有原始碼啊 沒提供自己加不就好了orz
作者: benjenq (Ben(憋))   2017-03-19 13:54:00
我的意思是,程式碼都看不出在哪需要padding,
作者: KanoLoa (卡)   2017-03-20 17:39:00
UNO不夠強 有沒有試過MEGA呢~
作者: cs8425 (cs)   2017-03-22 02:09:00
沒有? AES.h 201~211行是啥? 還是連翻譯都不會用啊?
作者: gpgpi   2017-05-07 12:10:00
Des演算法,會有padding選項,用以補足原始資料長度不足8的倍數,這部分加解密端必須一致哦!

Links booklink

Contact Us: admin [ a t ] ucptt.com