高分求助如何将这段 c 代码转化为java (涉及到DES加密)
#include "stdio.h"
#ifndef _TP_ENCRYPT_XML_DLL_H
#define _TP_ENCRYPT_XML_DLL_H
#define myConstKey "abcdefgh"
extern int encryptXML(char *OutFile,char *InFile);
#endif
int KEYbit[64];
int temOut[64],temIn[64];
char Outdata[4*1024], Indata[4*1024];
long datalen;
int ReadDataFromFile(char *filePath)
{
FILE *pF;
datalen=0;
if( (pF=fopen(filePath,"r"))==NULL)
return 0;
while(!feof(pF))
{
fscanf(pF,"%c",&Indata[datalen]);
datalen++;
}
fclose(pF);
return 1;
}
int WriteDataTofile(char *filePath)
{
FILE *pF;
int i=0;
if( (pF=fopen(filePath,"w"))==NULL )
return 0;
for(;i<datalen-1;i++)
fprintf(pF,"%c",Outdata[i]);
fclose(pF);
}
void ByteToBit(int *Out, char *In, int bits)
{
for(int i=0; i<bits; ++i)
Out[i] = (In[i>>3]>>(i&7)) & 1;
}
void BitToByte(char *Out, int *In, int bits)
{
for(int i=0; i<bits; ++i)
Out[i>>3] |= In[i]<<(i&7);
}
void encryptXML_real(int bitLen)
{
int i=0;
for(;i<bitLen;i++)
if(temIn[i]==KEYbit[i])
temOut[i]=0;
else
temOut[i]=1;
}
void SUB_encryptXML(char *SubOut,char *SubIn)
{
int len;
memset(temIn,0,64);
memset(temOut,0,64);
len=8;
ByteToBit(temIn,SubIn,len*8);
encryptXML_real(len*8);
BitToByte(SubOut,temOut,len*8);
}
//无论加解密都用这一个函数
int encryptXML(char *OutFile,char *InFile)
{
long i,j,temDataen;
char *pIndata,*pOutData;
pIndata=Indata;
pOutData=Outdata;
memset(Indata,0,4*1024);
memset(Outdata,0,4*1024);
memset(KEYbit,0,64);
if( !ReadDataFromFile(InFile) )
return 0;
ByteToBit(KEYbit,myConstKey,64);
temDataen=datalen;
for(i=0,j=temDataen>>3;i<j+1; i++,pOutData+=8,pIndata+=8)
{
SUB_encryptXML(pOutData,pIndata);
}
WriteDataTofile(OutFile);
return 1;
}