伪随机数文件加密法的问题
程序代码:#include <stdio.h>
#include <stdlib.h>
union
{
int value;
struct
{
char first;
char second;
}fran;
}num;
main()
{
FILE *fp,*name2; /* name2位加密存放的文件 */
int i,t,len,k1,k2,k3,k4,k5;
float j;
char name1,buf[60000]; /* name1位用户输入的要进行加密的文件 */
printf("\n input filename that you want to lock or open:");
scanf("%s",name1);
if((fp=fopen(name1,"rb"))==NULL) /* 以只读的方式打开一个二进制文件 */
{
printf("File cannot be opened\n");
exit(1);
}
else
printf("File opened for encrypt\n");
j=filelength(name1);
printf("\ninput key1:");
gets(k1);
printf("\ninput key2:");
gets(k2);
printf("\ninput key3:");
gets(k3);
srand(k1);
for(i=0;i<k2;i++)
{
k4=rand();
}
k5=(k3+k2)/2;
for(i=0;i<j;i++)
{
num.value=rand();
if(num.fran.first<=33)
num.fran.first=num.fran.first+33;
buf[i]=num.fran.first^buf[i]; /* 进行异或运算 */
}
fopen(name2,"wb"); /* 以只写的方式建立一个二进制文件存放加密后的文件 */
fputs(buf,name2);
printf("\nFile is already encrypted");
fclose(name1); /* 关闭文件 */
fclose(name2);
}
下面这部分的代码我有点不懂,哪位大侠解答下!
程序代码:srand(k1);
for(i=0;i<k2;i++)
{
k4=rand();
}
k5=(k3+k2)/2;
for(i=0;i<j;i++)
{
num.value=rand();
if(num.fran.first<=33)
num.fran.first=num.fran.first+33









