📄 hpc.cpp
字号:
Length=strin.GetLength();
}
for(i=0;i<Length;i++)
{
ch[i]=strin.GetAt(i);
}
ch[i+1]='\0';
i=0;
for(i=0;i<(l1/16);i++)
{
for(j=0;j<16;j++)
{
ch1[j]=ch[i*16+j];
}
chtoul(ch1,ul);
encrypt(ul,ul1);
//temp[0]=ul1[0];temp[1]=ul1[1];temp[2]=ul1[2];temp[3]=ul1[3];
//decrypt(temp,ul1);
for(j=0;j<4;j++)
{
char str[9];
//out[i*16+j] = ch2[j];
//str +=ch2[j];
sprintf(str,"%08x",ul1[j]);
// str[j]=ch2[j];
str[8]='\0';
strout +=str;
}
}
u4byte a=0xffffffff;
switch((l-1)/4)
{
u4byte b;
//int n;
case 0:
for(j=0;j<16;j++)
{
ch1[j]=ch[i*16+j];
}
chtoul(ch1,ul);
ul[3]=ul[2]=ul[1]=0;
a=a<<(32-l*8);
b=ul[0];
b = b&a;
ul[0]=b;
encrypt(ul,ul1);
for(j=0;j<4;j++)
{
char str[9];
//out[i*16+j] = ch2[j];
//str +=ch2[j];
sprintf(str,"%08x",ul1[j]);
// str[j]=ch2[j];
str[8]='\0';
strout +=str;
}
break;
case 1:
for(j=0;j<16;j++)
{
ch1[j]=ch[i*16+j];
}
chtoul(ch1,ul);
ul[3]=ul[2]=0;
a=a<<(32-(l%4)*8);
b=ul[1];
b = b&a;
ul[1]=b;
encrypt(ul,ul1);
for(j=0;j<4;j++)
{
char str[9];
//out[i*16+j] = ch2[j];
//str +=ch2[j];
sprintf(str,"%08x",ul1[j]);
// str[j]=ch2[j];
str[8]='\0';
strout +=str;
}
break;
case 2:
for(j=0;j<16;j++)
{
ch1[j]=ch[i*16+j];
}
chtoul(ch1,ul);
ul[3]=0;
a=a<<(32-(l%4)*8);
b=ul[2];
b = b&a;
ul[2]=b;
encrypt(ul,ul1);
for(j=0;j<4;j++)
{
char str[9];
//out[i*16+j] = ch2[j];
//str +=ch2[j];
sprintf(str,"%08x",ul1[j]);
// str[j]=ch2[j];
str[8]='\0';
strout +=str;
}
break;
case 3:
for(j=0;j<16;j++)
{
ch1[j]=ch[i*16+j];
}
chtoul(ch1,ul);
a=a<<(32-(l%4)*8);
b=ul[3];
b = b&a;
ul[3]=b;
encrypt(ul,ul1);
for(j=0;j<4;j++)
{
char str[9];
//out[i*16+j] = ch2[j];
//str +=ch2[j];
sprintf(str,"%08x",ul1[j]);
// str[j]=ch2[j];
str[8]='\0';
strout +=str;
}
break;
}
}
void HPC::jiemi(CString strin, CString &strout)
{
u4byte ul[4],ul1[4];
char ch[16],ch1[17];
while (!strin.IsEmpty())
{
ul[0] = strtoul(strin.Left(8),NULL,16);
strin = strin.Mid(8);
ul[1] = strtoul(strin.Left(8),NULL,16);
strin = strin.Mid(8);
ul[2] = strtoul(strin.Left(8),NULL,16);
strin = strin.Mid(8);
ul[3] = strtoul(strin.Left(8),NULL,16);
strin = strin.Mid(8);
decrypt(ul,ul1);
ultoch(ul1,ch1);
ch1[16]='\0';
strout += ch1;
//strout +=ul1;
//strout +='\0';
}
}
void HPC::filejiemi(CString strin, CString &strout)
{
u4byte ul[4],ul1[4];
char ch[16],ch1[17];
while (!strin.IsEmpty())
{
ul[0] = strtoul(strin.Left(8),NULL,16);
strin = strin.Mid(8);
ul[1] = strtoul(strin.Left(8),NULL,16);
strin = strin.Mid(8);
ul[2] = strtoul(strin.Left(8),NULL,16);
strin = strin.Mid(8);
ul[3] = strtoul(strin.Left(8),NULL,16);
strin = strin.Mid(8);
decrypt(ul,ul1);
ultoch(ul1,ch1);
ch1[16]='\0';
strout += ch1;
}
}
void HPC::fileJiami(CString strin, CString &strout)
{
int Length,i,j,l,l1;
char ch[2000],out[2000];
char ch1[16],ch2[16];
u4byte ul[4],ul1[4],temp[4];
Length = l1 = strin.GetLength();
l = Length%16;
while((Length%16)!=0)
{
strin +='0';
Length=strin.GetLength();
}
for(i=0;i<Length;i++)
{
ch[i]=strin.GetAt(i);
}
ch[i+1]='\0';
i=0;
for(i=0;i<(l1/16);i++)
{
for(j=0;j<16;j++)
{
ch1[j]=ch[i*16+j];
}
chtoul(ch1,ul);
encrypt(ul,ul1);
//temp[0]=ul1[0];temp[1]=ul1[1];temp[2]=ul1[2];temp[3]=ul1[3];
//decrypt(temp,ul1);
for(j=0;j<4;j++)
{
char str[9];
//out[i*16+j] = ch2[j];
//str +=ch2[j];
sprintf(str,"%08x",ul1[j]);
// str[j]=ch2[j];
str[8]='\0';
strout +=str;
}
}
u4byte a=0xffffffff;
switch((l-1)/4)
{
u4byte b;
//int n;
case 0:
for(j=0;j<16;j++)
{
ch1[j]=ch[i*16+j];
}
chtoul(ch1,ul);
ul[3]=ul[2]=ul[1]=0;
a=a<<(32-l*8);
b=ul[0];
b = b&a;
ul[0]=b;
encrypt(ul,ul1);
for(j=0;j<4;j++)
{
char str[9];
//out[i*16+j] = ch2[j];
//str +=ch2[j];
sprintf(str,"%08x",ul1[j]);
// str[j]=ch2[j];
str[8]='\0';
strout +=str;
}
break;
case 1:
for(j=0;j<16;j++)
{
ch1[j]=ch[i*16+j];
}
chtoul(ch1,ul);
ul[3]=ul[2]=0;
a=a<<(32-(l%4)*8);
b=ul[1];
b = b&a;
ul[1]=b;
encrypt(ul,ul1);
for(j=0;j<4;j++)
{
char str[9];
//out[i*16+j] = ch2[j];
//str +=ch2[j];
sprintf(str,"%08x",ul1[j]);
// str[j]=ch2[j];
str[8]='\0';
strout +=str;
}
break;
case 2:
for(j=0;j<16;j++)
{
ch1[j]=ch[i*16+j];
}
chtoul(ch1,ul);
ul[3]=0;
a=a<<(32-(l%4)*8);
b=ul[2];
b = b&a;
ul[2]=b;
encrypt(ul,ul1);
for(j=0;j<4;j++)
{
char str[9];
//out[i*16+j] = ch2[j];
//str +=ch2[j];
sprintf(str,"%08x",ul1[j]);
// str[j]=ch2[j];
str[8]='\0';
strout +=str;
}
break;
case 3:
for(j=0;j<16;j++)
{
ch1[j]=ch[i*16+j];
}
chtoul(ch1,ul);
a=a<<(32-(l%4)*8);
b=ul[3];
b = b&a;
ul[3]=b;
encrypt(ul,ul1);
for(j=0;j<4;j++)
{
char str[9];
//out[i*16+j] = ch2[j];
//str +=ch2[j];
sprintf(str,"%08x",ul1[j]);
// str[j]=ch2[j];
str[8]='\0';
strout +=str;
}
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -