rand_key.c

来自「一个DES、3DES加解密的库文件」· C语言 代码 · 共 41 行

C
41
字号
/* rand_key.c *//* Copyright (C) 1993 Eric Young - see README for more details */#include "des_locl.h"int des_random_key(ret)des_cblock ret;	{	des_key_schedule ks;	static unsigned long c=0;	static unsigned short pid=0;	static des_cblock data={0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};	des_cblock key;	unsigned char *p;	unsigned long t;#ifdef MSDOS	pid=1;#else	if (!pid) pid=getpid();#endif	p=key;	t=(unsigned long)time(NULL);	l2c(t,p);	t=(unsigned long)((pid)|((c++)<<16));	l2c(t,p);	des_set_odd_parity((des_cblock *)data);	des_set_key((des_cblock *)data,ks);	des_cbc_cksum((des_cblock *)key,(des_cblock *)key,		(long)sizeof(key),ks,(des_cblock *)data);	des_set_odd_parity((des_cblock *)key);	des_cbc_cksum((des_cblock *)key,(des_cblock *)key,		(long)sizeof(key),ks,(des_cblock *)data);	bcopy(key,ret,sizeof(key));	bzero(key,sizeof(key));	bzero(ks,sizeof(ks));	t=0;	return(0);	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?