抓破了头还是解决不了 麻烦高手帮忙了
我有一个60个号码和字母的string input:
1312e7972714d01a46664a3523366a2f58560b42c485853674561c360d77
然后我有一个table:
Index 0 1 2 3 4 5 6 7 8 9 a b c d e f
S-box 0 2 4 c 5 9 a 3 7 e 1 0 f 8 6 b d
我需要写c code 把这60个字母变成另外一个 string output , 用上面的table转换,
例子:
我的c code 如下, 是固定row = [0]先 ,但是我卡在我的output完全就没根据index column转换....
请高手帮我开窍吧
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
main()
{
char input[60] = { "1312e7972714d01a46664a3523366a2f58560b42c485853674561c360d77" };
char sbox[8][16] = {
{ '2', '4', 'c', '5', '9', 'a', '3', '7', 'e', '1', '0', 'f', '8', '6', 'b', 'd' },
{ '7', 'e', 'a', '4', '1', 'd', '9', 'f', '2', 'b', '6', '0', 'c', '5', '8', '3' },
{ '3', '8', 'f', '1', 'a', '6', '5', 'b', 'd', 'e', '4', '2', '7', '0', '9', 'c' },
{ '8', 'f', '7', '9', '3', 'd', '4', 'b', 'c', '2', '0', 'a', '1', '5', '6', 'e' },
{ '1', 'f', '8', '3', 'c', '0', 'b', '6', '2', '5', '4', 'e', '9', 'a', '7', 'd' },
{ '1', 'd', 'f', '0', 'e', '8', '2', 'c', '7', '4', 'b', 'a', '3', '5', '9', '6' },
{ 'a', '3', '4', '7', 'b', '8', 'd', '2', '6', 'c', 'f', 'e', '0', '5', '1', '9' },
{ '3', 'c', '4', '2', '7', 'a', '0', '8', '5', 'b', 'f', '1', 'd', '6', '9', 'e' }
};
int box_id,i;
for (i = 0; i < 60; i++)
{
printf("%c", sbox[0][input]);
}
system("pause");
} |