#include <stdio.h>
#include <stdlib.h>
void CharToBinary(int iKey[64], char Key_text[8])//字符转化为二进制
{
int p, q = 0, i, j;
int k[8][8];
for(i = 0; i < 8; i++)
{
p =(int) Key_text[i];
if (p < 0)
{
p = p + 256;
}
for (j = 1; j <= 8; j++)
{
if (p > 0)
{
k[i][j-1] = (1 << (8 -j)) & p ? 1 :0;
}
else
{
k[i][j-1] = 0;
}
}
}
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
{
iKey[q] = k[i][j];
q++;
}
}
}
void BinaryToChar(int Result[64], char output[8])//二进制转化为字符
{
int q=0, i, j;
int TempResult[8][8];
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
{
TempResult[i][j] = Result[q];
q++;
}
}
for (i = 0; i < 8; i++)
{
output[i] = (char) (TempResult[i][0] * 128 + TempResult[i][1] * 64 + TempResult[i][2] * 32 + TempResult[i][3] * 16 + TempResult[i][4] * 8 + TempResult[i][5] * 4 + TempResult[i][6] * 2 + TempResult[i][7]);
}
}
void Xor(int text[64], int ivy[64])//异或
{
int i;
for (i = 0; i < 64; i++)
{
text[i] = text[i] ^ ivy[i];
- 1
- 2
前往页