开发者

Question regarding encryption of files using RC4 using hexadecimal keys

I am having to encrypt a binary file using RC4 algorithm for my script (written in bash)

The key is also in binary format

The following is what I am doing:

    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`

The contents of /tmp/packet and /tmp/cwkey are as follows:

    >cat /tmp/packet |开发者_如何学C 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

The MAC calculation command succeeds, but the encrypted packet calculation command gives the following error:

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

    non-hex digit
    invalid hex key value

I searched through forums and found that the format of key should be "0001020304..." but I am not sure how to convert my key (/tmp/cwkey above) to that format

Request you to please help me out


To get what od is giving you in that format:

od -t x1 | cut -d' ' -f2- | head -n -1 | tr "\n" ' ' | tr -d ' ' 

In English: get the hex dump, cut out the first field of each line (the count), cut off the last line, change the remaining newlines to spaces, and then remove all the spaces.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜