Conversion
BASH 二進製到十六進制以匹配 PHP bin2hex 函式?
在 bash 中,我可以呼叫 PHP 並執行以下命令:
testKey='8798(*&98}9%"^8&]8_98{9798**76876' testHex=$(php -r "echo bin2hex('$testKey');") echo $testHex
這將導致
38373938282a2639387d3925225e38265d385f39387b393739382a2a3736383736
我有一個 PHP 不可用的系統,有沒有隻使用 bash 來獲得相同的結果?
謝謝
如果你
hexdump
躺著:$ printf "%s" "$testKey" | hexdump -ve '/1 "%x"' 38373938282a2639387d3925225e38265d385f39387b393739382a2a3736383736
-e
設置格式字元串hexdump
,“必須用雙引號 (") 標記”。/1
格式字元串一次使用一個字節,%x
以十六進制列印(否則字節順序可能導致不同的輸出)。-v
是讓它也列印重複的數據(預設是用 a 替換它們*
)。
是的,
xxd
你可以做同樣的事情:testKey='8798(*&98}9%"^8&]8_98{9798**76876' testHex=$(echo -n "${testKey}" | xxd -p -c 100)
-p 標誌用於沒有偏移資訊的十六進制轉儲。
-c 100 標誌用於 100 個字元的行長(預設為 16,最大 256)。