od 指令的小問題 - Linux

Table of Contents

剛剛在寫個 openssl aes 加解密的小測試, 因為引入參數需要是 hex 形式,
google 了大部分解答都建議用 od -A n -t x1 來處理, 就寫了個小指令稿

#!/bin/bash
KEY=0123456789abcdef
KEY=`echo -n $KEY | od -A n -t x1 | sed 's/ *//g'`

執行得到 30313233343536373839616263646566
嗯, 正確, 再加長一倍

KEY=0123456789abcdef0123456789abcdef
執行得到 30313233343536373839616263646566 in.file out.file run run
錯誤

經過測試, KEY內的任意兩個字元對調, 得到的都是正確,
但是只要用 0~f 的順序, 就一定跳錯誤訊息.

換了 CentOS 7 & Ubuntu 16.04 都得到相同的結果(錯誤訊息不同)
請問有人知道這發生了什麼事情嗎?

--

All Comments

Olive avatarOlive2018-11-03
od每8byte換一行,如果第二行跟第一行一樣的話會用*取代
Rachel avatarRachel2018-11-04
in.filexxxxxx大概是被shell展開的檔案吧..
Mason avatarMason2018-11-09
od -A n -t x1 -v
Gilbert avatarGilbert2018-11-12
謝謝, -v 加上去後就正常顯示了