c语言随机数加密,TC伪随机数加密解决方法

TC伪随机数加密

#include 

#include 

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

{

k4=rand();

}

k5=(k3+k2)/2;

for(i=0;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);

}

没看明白,k1,k2,k3,k4,k5有什么用?

帮忙讲解下!

------解决方案--------------------

引用:Quote: 引用:k1是用来生成随机种子的,k2是用来将这个随机种子所生的伪随机数列移动到第k2位。

使得下一个rand()函数是第k2+1的伪随机数。

k3没有用,k4没有用,k5也没有用。就这样.....................................

没用那为什么还要写它呢?

谁写的代码你去问谁啊,又不是他写的,你问他为什么要写有什么用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值