⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crypt.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
/* *	Data Encryption Standard *	D.P.Mitchell  83/06/08. * *	block_cipher(key, block, decrypting) * *	these routines use the non-standard 7 byte format *	for DES keys. */#include <u.h>#include <libc.h>#include <auth.h>#include <libsec.h>/* * destructively encrypt the buffer, which * must be at least 8 characters long. */intencrypt(void *key, void *vbuf, int n){	ulong ekey[32];	uchar *buf;	int i, r;	if(n < 8)		return 0;	key_setup(key, ekey);	buf = vbuf;	n--;	r = n % 7;	n /= 7;	for(i = 0; i < n; i++){		block_cipher(ekey, buf, 0);		buf += 7;	}	if(r)		block_cipher(ekey, buf - 7 + r, 0);	return 1;}/* * destructively decrypt the buffer, which * must be at least 8 characters long. */intdecrypt(void *key, void *vbuf, int n){	ulong ekey[128];	uchar *buf;	int i, r;	if(n < 8)		return 0;	key_setup(key, ekey);	buf = vbuf;	n--;	r = n % 7;	n /= 7;	buf += n * 7;	if(r)		block_cipher(ekey, buf - 7 + r, 1);	for(i = 0; i < n; i++){		buf -= 7;		block_cipher(ekey, buf, 1);	}	return 1;}

⌨️ 快捷键说明

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