在unix上如果我这样做
printf "aY.S'Hk([;jYJ}8eJ5)Wsd58/x}s]Pne3V-6:t@" | xxd -p -c 256
我明白了
61592e5327486b285b3b6a594a7d38654a352957736435382f787d735d50
6e6533562d363a7440
然而在 mac os 上(这也是我在 linux 上想要的)我得到
61592e5327486b285b3b6a594a7d38654a352957736435382f787d735d506e6533562d363a7440
我找不到任何方法来防止xxd
在十六进制输出中添加换行符。我尝试sed
删除换行符,但它不起作用。我无法tr
在我的 UNIX 机器上安装。有什么方法可以从我的字符串创建一个没有任何换行符或空格的十六进制输出,或者有没有办法xxd
在Linux上配置不添加任何空格?请注意,我几乎尝试了所有选项,xxd
但没有运气
答案1
我尝试了这个(macos ventura 13.4(22F66),bash 5.2.15(1)-release):
$ echo -n "change this password to a secret" | xxd -p
6368616e676520746869732070617373776f726420746f20612073656372
6574
然后随机尝试(没有线索:);
$ echo -n "change this password to a secret" | xxd -p -c 0
6368616e676520746869732070617373776f726420746f206120736563726574
这就是我一直在寻找的。也许这有帮助。