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

📄 encrypt.c

📁 对txt文件进行加密解密
💻 C
字号:
/*
 * File:   encrypt.c
 * Date:   8 May 1999
 * Author: Bret Taylor (bstaylor@stanford.edu)
 * -------------------------------------------
 * This is the implementation for the encrypt.h library.  This
 * library uses bit manipulation to consistently map characters
 * to an unreadable format that is also 8 bits in length.  It does
 * so with the bitwise XOR operator (^), which returns which bits
 * are on in the first operand, but not in both.  The useful thing
 * about this operator is that a variable XOR'd with another can be
 * returned to its original state simply by XORing it with that
 * variable again.  Hence, this library (internally, anyway) doesn't
 * even make a distinction between encrypting and decrypting (both
 * simply require XORing each character in the input file)!
 */

#include "encrypt.h"
#include <assert.h>


/* Private Function Prototypes */
static void ApplyKeyToFile(FILE *in, FILE *out, unsigned char key);


/*
 * Public Function: EncodeFile
 * ---------------------------
 * This function is simply a wrapper function for the ApplyKeyToFile
 * decoder/encoder function.
 */
void EncodeFile(FILE *textFile, FILE *outputFile, unsigned char key)
{
	assert(textFile && outputFile);
	ApplyKeyToFile(textFile, outputFile, key);
}


/*
 * Public Function: DecodeFile
 * ---------------------------
 * This function is simply a wrapper function for the ApplyKeyToFile
 * decoder/encoder function.
 */
void DecodeFile(FILE *encodedFile, FILE *outputFile, unsigned char key)
{
	assert(encodedFile && outputFile);
	ApplyKeyToFile(encodedFile, outputFile, key);
}


/*
 * Function: ApplyKeyToFile
 * ------------------------
 * This function reads in characters from the in file, applying
 * the bitwise XOR operator on each.  It then writes those characters
 * to out.  Read this file's comments for a detailed explanation why
 * this function makes no distinction between "encoding" and
 * "decoding".
 */
static void ApplyKeyToFile(FILE *in, FILE *out, unsigned char key)
{
	int ch;

	while ((ch = getc(in)) != EOF)
		putc(ch ^ key, out);
}

⌨️ 快捷键说明

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