Openssl 关于使用十六进制密钥使用RC4加密文件的问题

Openssl 关于使用十六进制密钥使用RC4加密文件的问题,openssl,Openssl,我必须为我的脚本(用bash编写)使用RC4算法加密一个二进制文件 密钥也是二进制格式的 以下是我正在做的事情: echo -n -e $bPacketh > /tmp/packet echo -n -e $clientWriteKeyb > /tmp/cwkey mach=`openssl dgst -binary -hmac -md5 /tmp/cwkey /tmp/packet` pkth=`openssl enc -e -rc4 -K /tm

我必须为我的脚本(用bash编写)使用RC4算法加密一个二进制文件

密钥也是二进制格式的

以下是我正在做的事情:

    echo -n -e $bPacketh > /tmp/packet
    echo -n -e $clientWriteKeyb > /tmp/cwkey
    mach=`openssl dgst -binary -hmac -md5 /tmp/cwkey /tmp/packet` 
    pkth=`openssl enc -e -rc4 -K /tmp/cwkey -in /tmp/packet`
/tmp/packet和/tmp/cwkey的内容如下:

    >cat /tmp/packet | od -t x1

    0000000 86 09 94 8b cf 2d d3 99 94 9f 72 60 dd 3f a6 b6
    0000020 01 00 00 00 13 0b 05 00 00 00 0c 73 73 68 2d 75
    0000040 73 65 72 61 75 74 68 22 68 fb ab 5e 4d 1b 2b 61
    0000060 bd 38
    0000062

    >cat /tmp/cwkey | od -t x1 

    0000000 5d c5 45 a8 2b 44 5d 2f 49 67 f5 71 73 a8 51 5c
    0000020
MAC计算命令成功,但加密数据包计算命令给出以下错误:

    >openssl enc -e -rc4 -K /tmp/cwkey -in /tmp/packet

    non-hex digit
    invalid hex key value
我在论坛中搜索,发现密钥的格式应该是“0001020304…”,但我不确定如何将我的密钥(/tmp/cwkey)转换为该格式


请您帮助我

获取od以该格式提供给您的信息:

od -t x1 | cut -d' ' -f2- | head -n -1 | tr "\n" ' ' | tr -d ' ' 
英语:获取十六进制转储,删除每行的第一个字段(计数),删除最后一行,将剩余的换行符更改为空格,然后删除所有空格