📄 fes.c
字号:
/***
* Copyrights(c)2004, SuperStar STUDIO.
* All rights reserved.
*
* 文件名称: fes.txt(包括files\common.h, fes.h, window.h, def.h, smartea.h)
* 当前版本: 1.0
* 完成日期: 2004-2
* 作 者: 星星
*
* 取代版本: none
* 完成日期: none
* 作 者: none
*
* 摘要:
* 该算法根据密钥长度进行不同轮数的迭代。128/192/256bits长的密钥分别对应
* 6,9,12轮迭代。算法总体结构为Feistel网络结构.关于算法的详细资料请参阅文档
* --《SEA--一种新的分组密码算法.doc》。
***/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <bios.h>
#include <dos.h>
#include <dir.h>
#include <fcntl.h>
#include <io.h>
#include <mem.h>
#include <sys\stat.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include "FileES\def.h"
#include "FileES\fes.h"
#include "FileES\common.h"
#include "FileES\window.h"
#include "FileES\smartea.h"
/**
* BOOL Login(void);
* - 登录本系统,成功返回TRUE,反之返回FALSE
* - 本函数中使用全局变量
* - login(type: WINDOWHANDLE)
**/
BOOL
Login(void)
{
char str[LOGINKEYLENGTH+1];
RELOGIN:
login.retStrLen = LOGINKEYLENGTH;
if (FALSE == Window(&login))
{
FreeWindow(&login);
return FALSE;
}
CopyTo(str, login.retStr, login.retStrLen);
str[login.retStrLen] = '\0';
FreeWindow(&login);
if(0 == strcmp(str, "superstar")) /* 登录密码比对 */
{
return TRUE;
}
else
{
return FALSE;
}
}
/**
* - 主函数
* - 本函数中使用全局变量
* - key(type: KEYINFO)
* - message(type: WINDOWHANDLE)
* - funPanel(type: WINDOWHANDLE)
* - encryptItem(type: WINDOWHANDLE)
* - decryptItem(type: WINDOWHANDLE)
* - exitItem(type: WINDOWHANDLE)
* - bakGround(type: WINDOWHANDLE)
**/
void
main(void)
{
int i;
char ch;
BOOL breakFlag;
WINDOWHANDLE *pPanel_Fun[4]; /* 功能选择菜单的窗体参数 */
textmode(0x80); /* 设置文本模式 */
textbackground(0);
clrscr();
Window(&bakGround); /* 工作背景 */
for (i=0; i<3; i++) /* 3次登录机会 */
{
if (TRUE == Login()) break;
}
if (3 == i) return; /* 如果3次登录均失败,则退出本系统 */
while (1)
{
/* 菜单选择 */
pPanel_Fun[0] = &funPanel;
pPanel_Fun[1] = &encryptItem;
pPanel_Fun[2] = &decryptItem;
pPanel_Fun[3] = &exitItem;
i = Panel(pPanel_Fun, 4);
switch (i)
{
case 0: key.flag = ENCRYPT; /* 加密 */
SysMainFun();
break;
case 1: key.flag = DECRYPT; /* 解密 */
SysMainFun();
break;
case 2: /* 退出 */
case -1:
strcpy(message.displayStr, "[!]\n\n Are you sure to EXIT?(y/n) \n");
Message(&message);
breakFlag = 0;
while (!breakFlag)
{
ch = getch();
if ('y' == ch || 'Y' == ch)
{
FreeMessage(&message);
return;
}
else if ('n' == ch || 'N' == ch)
{
FreeMessage(&message);
breakFlag = 1;
}
}
break;
default: break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -