导航:首页 > 源码编译 > 置换密码算法实验报告

置换密码算法实验报告

发布时间:2022-07-13 13:33:28

‘壹’ 算法设计分析期末考题目,“密码学中的算法”设计实现单表置换密码,能对英文和数字组成的短文进行加密

很久没用C了,写的比较凌乱,呵呵

#include "stdio.h"
#include "conio.h"
#define MAP_SIZE 128
#define CONTENT_SIZE 1000
#define VALID_CHAR_COUNT 62
char map[MAP_SIZE], rmap[MAP_SIZE], keymask[MAP_SIZE];
char input[CONTENT_SIZE], output[CONTENT_SIZE];
void initialize(char *array)
{
int i;
for(i = 0; i < MAP_SIZE; ++i)
{
array[i] = i;
keymask[i] = 0;
}
}
int isvalidchar(char c)
{
/*判断字符是否字母或数字*/
return c >= '0' && c <= '9' || c >= 'a' && c <= 'z' ||c >= 'A' && c <= 'Z';
}
int convertindex(int i)
{
/*将0~61的数字转换到转换表中对应区段的下标
即0~9 => 数字,10~35 => 大写字母,36~61 => 小写字母*/
if(i < 10)
{
return i + '0';
}
i-=10;
if(i < 26)
{
return i + 'A';
}
i-=26;
if(i < 26)
{
return i + 'a';
}
}
void gen_map(char *key)
{
/*生成加密用的置换表*/
int index = 0, i;
initialize(map);
while(*key)
{
/*先将密钥中的字符加入转换表,并做标记*/
if(keymask[*key] == 0)
{
keymask[*key] = 1;
map[convertindex(index++)] = *key;
}
++key;
}
for(i = 0; i < MAP_SIZE; ++i)
{
/*将密钥中未出现的字符依次加入转换表*/
if(keymask[i] == 0 && isvalidchar(i))
{
map[convertindex(index++)] = i;
}
}
}
void gen_rmap(char *key)
{
/*生成解密用的置换表*/
int index = 0, i;
initialize(rmap);
while(*key)
{
/*先将密钥中的字符加入转换表,并做标记*/
if(keymask[*key] == 0)
{
keymask[*key] = 1;
rmap[*key] = convertindex(index++);
}
++key;
}
for(i = 0; i < MAP_SIZE; ++i)
{
/*将密钥中未出现的字符依次加入转换表*/
if(keymask[i] == 0 && isvalidchar(i))
{
rmap[i] = convertindex(index++);
}
}
}
void encrypt(char *key)
{
int i, len = strlen(input);
gen_map(key);
for(i = 0; i < len; ++i)
{
/*对每一个原文中的字符,从置换表中找到对应字符并加入输出缓冲*/
output[i] = map[input[i]];
}
output[len] = 0;
}
void decrypt(char *key)
{
int i, len = strlen(input);
gen_rmap(key);
for(i = 0; i < len; ++i)
{
/*对每一个原文中的字符,从置换表中找到对应字符并加入输出缓冲*/
output[i] = rmap[input[i]];
}
output[len] = 0;
}
int main()
{
char key[CONTENT_SIZE];
int opt;
while(1)
{
do
{
printf("Input 1 to encrypt, 2 to decrypt, or 0 to exit:");
scanf("%d%c", &opt);
}
while(opt != 1 && opt != 2 && opt != 0);
if(opt == 0)
{
return 0;
}
puts("Content:");
gets(input);
puts("Key:");
gets(key);
if(opt == 1)
{
encrypt(key);
}
else
{
decrypt(key);
}
puts(output);
}
}

‘贰’ 置换密钥矩阵加密算法实现与安全性分析

#include<iostream.h>
class SubKey{ //定义子密钥为一个类
public:
int key[8][6];
}subkey[16]; //定义子密钥对象数组

class DES{
int encipher_decipher; //判断加密还是解密
int key_in[8][8]; //用户原始输入的64位二进制数
int key_out[8][7]; //除去每行的最后一位校验位
int c0_d0[8][7]; //存储经PC-1转换后的56位数据
int c0[4][7],d0[4][7]; //分别存储c0,d0
int text[8][8]; //64位明文
int text_ip[8][8]; //经IP转换过后的明文
int A[4][8],B[4][8]; //A,B分别存储经IP转换过后明文的两部分,便于交换
int temp[8][6]; //存储经扩展置换后的48位二进制值
int temp1[8][6]; //存储和子密钥异或后的结果
int s_result[8][4]; //存储经S变换后的32位值
int text_p[8][4]; //经P置换后的32位结果
int secret_ip[8][8]; //经逆IP转换后的密文
public:
void Key_Putting();
void PC_1();
int function(int,int); //异或
void SubKey_Proction();
void IP_Convert();
void f();
void _IP_Convert();
void Out_secret();
};
void DES::Key_Putting() //得到密钥中对算法有用的56位
{
cout<<"请输入64位的密钥(8行8列且每行都得有奇数个1):\n";
for(int i=0;i<8;i++)
for(int j=0;j<8;j++){
cin>>key_in[i][j];
if(j!=7) key_out[i][j]=key_in[i][j];
}
}
void DES::PC_1() //PC-1置换函数
{
int pc_1[8][7]={ //PC-1
,
,
,
,
,
,
,

};
int i,j;
for(i=0;i<8;i++)
for(j=0;j<7;j++)
c0_d0[i][j]=key_out[ (pc_1[i][j]-1)/8 ][ (pc_1[i][j]-1)%8 ];
}
int DES::function(int a,int b) //模拟二进制数的异或运算,a和b为整型的0和1,返回值为整型的0或1
{
if(a!=b)return 1;
else return 0;
}
void DES::SubKey_Proction() //生成子密钥
{
int move[16][2]={ //循环左移的位数
1 , 1 , 2 , 1 ,
3 , 2 , 4 , 2 ,
5 , 2 , 6 , 2 ,
7 , 2 , 8 , 2 ,
9 , 1, 10 , 2,
11 , 2, 12 , 2,
13 , 2, 14 , 2,
15 , 2, 16 , 1
};
int pc_2[8][6]={ //PC-2
14, 17 ,11 ,24 , 1 , 5,
3 ,28 ,15 , 6 ,21 ,10,
23, 19, 12, 4, 26, 8,
16, 7, 27, 20 ,13 , 2,
41, 52, 31, 37, 47, 55,
30, 40, 51, 45, 33, 48,
44, 49, 39, 56, 34, 53,
46, 42, 50, 36, 29, 32
};
for(int i=0;i<16;i++) //生成子密钥
{
int j,k;
int a[2],b[2];
int bb[28],cc[28];
for(j=0;j<4;j++)
for(k=0;k<7;k++)
c0[j][k]=c0_d0[j][k];
for(j=4;j<8;j++)
for(k=0;k<7;k++)
d0[j-4][k]=c0_d0[j][k];
for(j=0;j<4;j++)
for(k=0;k<7;k++){
bb[7*j+k]=c0[j][k];
cc[7*j+k]=d0[j][k];
}
for(j=0;j<move[i][1];j++){
a[j]=bb[j];
b[j]=cc[j];
}
for(j=0;j<28-move[i][1];j++){
bb[j]=bb[j+1];
cc[j]=cc[j+1];
}
for(j=0;j<move[i][1];j++){
bb[27-j]=a[j];
cc[27-j]=b[j];
}
for(j=0;j<28;j++){
c0[j/7][j%7]=bb[j];
d0[j/7][j%7]=cc[j];
}
for(j=0;j<4;j++) //L123--L128是把c0,d0合并成c0_d0
for(k=0;k<7;k++)
c0_d0[j][k]=c0[j][k];
for(j=4;j<8;j++)
for(k=0;k<7;k++)
c0_d0[j][k]=d0[j-4][k];
for(j=0;j<8;j++) //对Ci,Di进行PC-2置换
for(k=0;k<6;k++)
subkey[i].key[j][k]=c0_d0[ (pc_2[j][k]-1)/7 ][ (pc_2[j][k]-1)%7 ];
}
}
void DES::IP_Convert()
{
int IP[8][8]={ //初始置换IP矩阵
58, 50, 42, 34, 26, 18, 10, 2,
60, 52, 44, 36, 28, 20, 12, 4,
62, 54, 46, 38, 30, 22, 14, 6,
64, 56, 48, 40, 32, 24, 16, 8,
57, 49, 41, 33, 25, 17, 9, 1,
59, 51, 43, 35, 27, 19, 11, 3,
61, 53, 45, 37, 29, 21, 13, 5,
63, 55, 47, 39, 31, 23, 15, 7
};
cout<<"你好,你要加密还是解密?加密请按1号键(输入1),解密请按2号键,并确定."<<'\n';
cin>>encipher_decipher;
char * s;
if(encipher_decipher==1) s="明文";
else s="密文";
cout<<"请输入64位"<<s<<"(二进制):\n";
int i,j;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
cin>>text[i][j];
for(i=0;i<8;i++) //进行IP变换
for(j=0;j<8;j++)
text_ip[i][j]=text[ (IP[i][j]-1)/8 ][ (IP[i][j]-1)%8 ];
}

‘叁’ 页面置换实验报告的程序结构怎么写

数据库课程设计“数据库课程设计”是数据库系统及应用课程的后续实验课,是进一步巩固学生的数据库知识,加强学生的实际动手能力和提高学生综合素质。一、课程设计目的课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。课程设计的目的:1.加深对数据库原理、程序设计语言的理论知识的理解和应用水平;2.在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;4.为毕业设计和以后工作打下必要基础。二、课程设计要求运用数据库原理的基本理论与应用知识,在微机RDBMS(SQLServer)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。1.用E-R图设计选定题目的信息模型;2.设计相应的关系模型,确定数据库结构;3.分析关系模式各属于第几范式,阐明理由;4.设计应用系统的系统结构图,确定系统功能;5.通过设计关系的主码约束、外码约束和使用CHECK实现完整性控制;6.为参照关系设计插入、删除、修改触发器;7.实现应用程序设计、编程、优化功能;8.对系统的各个应用程序进行集成和调试,进一步优化系统功能、改善系统用户界面完成实验内容所指定的各项要求;9.分析遇到的问题,总结并写出课程设计报告;10.自我评价三、实验环境开发环境VC++、C#、ASP或JAVA;ODBC/JDBC;数据库SQLServer四、上机实现内容1.创建数据库的结构2.创建各基本表的结构3.编制系统各功能模块,完成数据的管理(增、删、改)及统计查询。对于程序运行界面不做考核的重点。五、课程设计考核1.对学生到实验室的情况进行不定时统计;2.出勤率+课程设计报告+课程设计所开发的应用系统+其他(上机抽查和提问)=综合评定成绩。3.课程设计结束时请将下列资料上交:(1)课程设计报告;(2)所开发的应用系统的源程序、安装和使用说明;(3)将(1)(2)中的资料压缩成一个压缩包,压缩包文件的命名规则:班级+学号(末2位)+姓名(例如:计科090101王鹏晓);(4)班长将本班每人的(3)中的压缩包刻录成光盘连同打印的课程设计报告收齐,交给任课教师。附录﹑课程设计题目题目1:课程设计选题管理系统(1,24)包括三大模块:课程设计题目维护与查询:题目的添加、修改和删除;按题目类型、名称和关键字查询以及已选与未选题目的查询;学生信息维护与查询;学生选题维护与管理:学生选题及查询;具体功能细化:前台学生选题:学生上网登录系统进行选题;前台教师出题:教师添加、修改和删除题目;教师确认学生的选题;后台管理出题和选题添加用户及权限题目2:书店管理系统(23)包括四大模块:售书(图书销售管理及销售统计,查询)进书(通过书目,向发行商下定单订购图书)库存(图书库存,统计)相关查询题目3:图书馆管理系统(11)包括四大模块:图书的查询借书还书图书的预约题目4:库存管理系统(8)包括四大模块:商品目录建立商品入库管理商品出库管理商品库存查询题目5:工资管理系统(1人)41包括四大模块:系统数据初始化员工基本信息数据的输入、修改、删除;员工个人信息及工资表的查询;员工工资的计算;参考数据如下:员工基本状况:包括员工号、员工姓名、性别、所在部门、工资级别、工资等级等。工资级别和工资金额:包括工资等级、工资额。企业部门及工作岗位信息:包括部门名称、工作岗位名称、工作岗位工资等。工龄和工资金额:包括工龄及对应工资额。公司福利表:包括福利名称、福利值。工资信息:包括员工号、员工姓名、员工基础工资、员工岗位工资、员工工龄工资、公司福利、员工实得工资。题目6:酒店客房管理系统(1人)14,26包括四大模块:前台操作:包括开房登记、退房结账和房状态查看预订管理:包括预订房间、预订入住和解除预订信息查询:包括在住客人列表、预订客人列表和历史客人列表报表统计:包括开房记录统计、退房结账和预订房间统计员工基本信息数据的输入、修改、删除;参考数据如下:住店管理:客人姓名、证件号码、房号、入住时期、预计离开日期、结账离开日期、应付金额客人信息:姓名、性别、证件类型、证件号码、联系电话房间信息:房号、房类型、价格、押金、房状态预订房间客人姓名、性别、房类型、房号、价格、证件类型、证件号码、联系电话、入住日期、预计离开日期、历史信息题目7:旅行社管理信息系统(1人)3包括如下模块:旅游团队、团队团员及旅游路线相关信息的输入旅游团队、团队团员及旅游路线相关信息的维护(修改、浏览、删除和撤销)旅游团队管理信息的查询(如按团队编号)团队团员基本情况的查询(可选多种方式)旅游路线相关信息的查询(如按线路编号)旅游路线排行榜发布。数据备份,更改密码。参考数据如下:团员信息表(路线编号,团队编号,团员编号,姓名,性别,电话,通信地址,身份证号码,团费交否,备注)线路信息表(路线名称,团费,简介,图形,路线编号)团队信息表(团队编号,路线编号,团员人数,出发日期,返程日期)旅游团队信息表(团队编号,团队负责人,团员人数,建团时间,是否出发,团费,盈亏)密码信息(操作员,密码)题目8:报刊订阅管理系统(1人)25,35包括如下模块:登录功能:登录统为身份验证登录。分为管理员登录和一般用户登录。分别通过不同的用户名和密码进入报刊订阅管理界面,新的用户需要注册。录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;普通用户自行注册进行可以修改个人信息。订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门分类查询。查询出的信息显示在界面上,并且可以预览和打印出结果。统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订阅信息进行统计;普通用户可以统计出自己的订阅情况,并且可以预览和打印出结果。系统维护功能:数据的安全管理,主要是依靠管理员对数据库里的信息进行备份和恢复,数据库备份后,如果出了什么意外可以恢复数据库到当时备份的状态,这提高了系统和数据的安全性,有利于系统的维护参考数据如下:管理员表(Adminuser):管理员名、密码。部门表(Department):部门号,部门名。用户表(Users):用户账号、密码、真实姓名、身份证号、联系电话,联系地址,部门号(和部门表有关)等。报刊类别表(NewspaperClass):分类编号、分类名称。报刊信息表(Newspaper):报刊代号、报刊名称、出版报社、出版周期、季度报价、内容介绍、分类编号(和报刊类别表有关)等。订单表(Order):订单编号、用户编号、报刊代号、订阅份数、订阅月数等。题目9:计算机等级考试教务管理系统(2人)32包括四大模块:用户设置:对考点代码,考点名称进行设置,设置用户与密码;系统复位:即清除上一次考试数据(在之前存入历史)报名管理:报各库录入(姓名不能不空,之间不能有空格)增加、删除、修改、浏览准考证管理:准考证生成规则:xxx+yy+zz+kk,其中XXX为考点代码;YY为语言代码,XX为考场号,KK为座位号同一级别、语言应根据报名初始库信息按随机数生成准考证,同一考点最多可有99*30=2970名考生;如已生成准考证号,再重新生成准考证号,应该给予提示。准考证打印考务管理:考生信息查询、浏览、打印成绩管理:成绩数据录入、接收成绩合成(总成绩=笔试成绩*0.6+上机成绩*0.4),按大于或等于60合格参考数据如下:初始报名表(准考证号(为空),报名号(主键),级别+语言种类(外键),姓名,性别,出生年份,民族,身份证号,联系地址,联系电话,照片,备注,参加培训)含准考证号的报名表(准考证号(为主键),报名号,级别+语言种类(外键),姓名,性别,出生年份,民族,身份证号,联系地址,联系电话,照片,备注,参加培训)成绩表(准考证号,笔试成绩,上机成绩,总成绩)级别语言代码表(级别语言代码,级别+语言)用户信息表(考点代码,考点名称,用户名,密码)题目10:人事管理系统(1人)21包括四大模块:登录管理:包括操作员管理,口令设置,权限管理人员管理:包括人事数据维护、人事信息查询和人事信息统计工资管理部门管理:包括部门表,职称表和年份表查询及报表打印参考数据如下:人事表(编号,姓名,性别,出生日期,工作日期,部门代码,职称,婚否,简历,相片)工资表(基本工资,岗位津贴,奖励,应发工资,水电,保险,实发工资)部门表(代码,部门名称)职称表(职称代码,职称名称)年份表(年份代码,年份名称)操作员表(操作员代码,操作员姓名,口令,部门,电话)系统日志表(操作员代号,操作员姓名,登录时间,离开时间)题目11:商品销售管理系统(1人)19包括四大模块:用户登录基本信息管理:包括销售情况、商品信息、库存表、员工表等信息的录入、浏览、修改、撤销、删除和查询等商品销售管理:包括商品售出、退回和入库盘点:包括库存盘点、当日销售盘点参考数据如下:商品信息表(商品编号,商品名称,品牌,型号,销售单价)商品编号=类别代码(1位)+品名代码(1位)+品牌代码(2位)+型号代码(2位)销售情况表(成交编号,商品编号,销售数量,总金额,销售日期,员工编号)库存表(商品编号,供货商编号,进货日期,进货价,库存数量)员工表(员工编号,员工姓名,性别,基本工资,职务,密码)供货商表(供货商编号,供货商名称,所在地,联系电话)员工资料表(员工编号,员工姓名,是否党员,简历,照片)题目12:学生成绩管理系统(1人)29包括四大模块:基本数据管理:包括院系管理,专业管理(设置院系下面的专业),班级管理(设置专业下面的班级),课程管理(设置相应专业下面的课程)学生信息管理:包括基本信息录入、基本信息修改学生成绩管理:包括学生成绩录入、学生成绩修改信息查询:包括基本信息查询、成绩信息查询、学校人数统计系统管理:用户管理、数据备份和系统帮助参考数据如下:院系信息(院系代码,院系名称)院系专业信息(班级、院系代码,专业)学生基本信息(班号,学号,姓名,性别,出生年月,籍贯,政治面貌,身份证号,入学年月,家庭地址,邮政编码,图片信息,备注)学生成绩表(学号,课号,成绩,备注)课程表(课号,课程名称,学期,备注)班表(班号,班级名称)用户信息表(用户名,密码,用户标识)题目13:火车售票管理系统(4人)36包括四大模块:售票管理订票管理信息查询系统维护参考数据如下:车次信息表(车次,始发站,终点站,发车时间,到达时间)订票信息表(车次,座位号,发车时期,发车时间,座位等级,票价)车次座位等级分配及座位占用表(车次,座位号,座位等级,票价,占用标志)用户信息表(用户名,密码,用户标识)题目14:小型物业管理系统(1人)包括四大模块:房源管理:对原始资料的录入、修改、查询和刷新。一般用户可以查询与房间有关的统计资料;物业主管可其进行增、删、改、插等操作租房管理:对房产出租,退租以及租房面积调整。其中物业主管可对其进行房租金额计算和收款操作,一般用户对其查询水电处理:根据租房资料,结合当月水、电量进行分摊,完成应收水电费。其中物业主管对其进行计算,其他查询交款处理:提供收款和发票打印以及交款数据查询查询处理:对租房资料、交款资料,发票资料进行查询参考数据如下:房源资料(名称,面积,月租,物业,仓库)租房资料(名称,面积,单位,月租,物业,押金,仓库)水电资料(单位,电量,水量,电费,水费)交费资料(收费项目,应收日期,应收金额,已收金额,未收金额,本次收款)发票资料(单位,房租,电费,水费,物业)权限资料(用户,密码,房源管理,租房管理,水电管理,交费管理,发票管理,系统维护)其中系统管理员,有权进行系统维护;单位内部物业主管,有权进行物业资源调配、单元出租,退租和收款开票操作;物业管理员,有权进行水电处理和收款处理等操行;租户代表,有权进行种类费的查询操作题目15:机房收费管理系统(1人)7,34包括四大模块:登录模块上机管理模块说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记每位同学的一次上机形成一条记录,每36S遍历一次上机记录表,对表中所有正上机字段为TRUE的记录的上机用时增加36S,同时从上机卡表的余额减少上机卡管理模块充值挂失模块查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学生上机的次数、上机总时数、每次上机平均时间;挂失和查询余参考数据如下:上机卡(卡号,姓名,专业班级,余额,状态)状态的取值有:正常(能自费上机)挂失上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码),上机用时记录学生上机时间(S);正上机是一个布尔型,为True表示正上机,每36秒刷新其上机用时并扣除上机费用,为False表示上机结束。上机记录表永久保存,用于事后查询和统计管理员(代码,姓名,口令)题目16:高校药房管理(1人)31包括四大模块:基础数据处理:包括医生和药剂师名单的录入,修改,删除及查询营业数据处理:包括药品进货上柜,处理划价,配药,柜存药品查询,处方综合查询,交接班结转清。参考数据如下:药品信息表(货号,货名,计量单位,进货数量,进货单价,出售单价,进货日期,收货人和供应商)处方信息(编号,患者姓名,医生姓名,药剂师姓名,处方日期,配药日期)处方药品信息(处方编号,药品货号,计量单位,配药数量,销售单价,已配药否)医生名单和药剂师名单表(姓名)题目17:考勤管理系统(2人)40包括四大模块:记录每个员工每天所有进入公司的时刻和离开公司的时刻。每天结束时自动统计当天的工作时间每天结束时自动统计当天迟到或早退的次数。对于弹性工作制,每天结束时自动统计当月的工时,并自动算出当月欠缺或富余的时间每个月末统计该月的工作时间判断是束足够每个月末统计该月的工作天数并判断是否足够管理人员查询并修改工作时间(特殊情况下修改)管理人员账户管理(如设置密码等)管理人员设定早退及迟到的条件,每个月的工作时间管理人员设定每个月的工作日期及放假日期参考数据如下:员工信息(工号,姓名,年龄,入职时间,职位,性别,密码)配置信息(上班时间小时,上班时间分钟,下班时间小时,下班时间分钟,每天工作时间)每月统计数据表(工号,姓名,剩余的时间,迟到的次数,早退的次数,工作天数)每天统计信息表(工号,姓名,小时,分钟,动作,时间)其中动作指的时入或离开公司题目18:单位房产管理系统(2人)33,10包括四大模块:系统模块:完成数据库维护、系统关闭功能物业费用模块:完成本月物业的计费、历史资料查询和财务部门接口传送数据、物业相关费用单价设置房屋资源模块:对房屋资源进行添加、列表显示、查询职工信息模块:对职工进行添加、列表显示、查询以及相应部门、职务进行维护帮助模块:对用户使用本系统提供在线帮助参考数据如下:职工(编号,姓名,性别,参加工作时间,行政职务,专业技术职务,评上最高行政职务时间,评上最高专业技术职务时间,双职工姓名,现居住房号,档案号,房产证号,所在部门编号,是否为户主)部门(编号,部门名称)住房级别表(编号,级别,住房标准,控制标准,级别分类)房产情况(编号,房号,使用面积,现居住人id,上一个居住人id,最早居住人ID,阳台面积)物业费用(编号,房号,水基数,水现在值,电基数,电现在值,燃气基数,燃气现在值,当前年份,当前月份)价格标准(编号,水单价,电单价,燃气单价)题目19:标准化考试系统(2人)15,39功能要求:设计一个简单的标准化考试系统,仅有单项选择题、多项选择题和判断题功能即可。包括四大模块:题库管理:实现试题的录入、修改、删除功能;考试子系统:能够实现考生做题、结果自动存入到数据库中,有时间提示;选择身份(登录)功能:系统能够记录考生输入的登录信息及交卷信息;自动评分功能:考生交卷后能自动评分;查看成绩功能:能够查询考生相关信息(包含成绩等)。参考数据如下:其它可供选择的题目:网上教务评教系统130,127,13316学生日常行为评分管理系统232,110,230网上鲜花店38基于BS结构的工艺品销售系统12基于BS结构的校园二手物品交易网站37大学生就业管理系统201,208,234题库及试卷管理系统数据库原理及应用课程设计报告题目:课程设计选题管理系统所在学院:班级:学号:姓名:李四指导教师:2011年12月日目录一、概述二、需求分析三、概念设计四、逻辑设计五、系统实现六、小结一、概述

‘肆’ 求一个操作系统页面置换算法先进先出的实验报告

一选择
1.B 2.c 3。 D 4B 5B
二填空
1,最优;先进先出;最近最久未使用
2. 13;15;
3. 123456721;123567421
4.段;段;页;页;三;二
三,问答
1.答:三个页面的物理起始地址分别是:4k,6K,12K,
2500= 2K+452,所以在第二个逻辑页面6K的起始地址,实际地址是6K+452;
2.LRU:装入顺序:2 3 1 5 4 3 2
换出顺序: 3 1 2 4 缺页次数7次
FIFO:装入顺序:2 3 1 5 2 4 3 5 2
换出顺序: 2 3 1 5 2 4 缺页次数9次
时钟:装入顺序:2 3 1 5 2 4 3 2
换出顺序: 2 3 1 2 4 缺页次数8次
时钟算法性能处于中间,优于FiFo,差于LRU,但由于LRU算法的硬件实现比较麻烦,所以时钟算法问兼顾了效率和硬件实现

‘伍’ 比较替代密码技术和置换密码技术的不同的举例

置换是在不丢失信息的前提下对明文中的元素进行重新排列
所谓置换密码,就是把明文中的字母或数字重新排列,字母或数字本身不变,但其位置发生了改变,这样所编成的密码称为置换密码。举个例子,例如:
明文:zhe shi huan mi ma
密文:ami mna uhi hzih se hz

提高密码强度的一种方法,就是采取多个密文字母表,使得明文中字母可以有多个字母来代替,构成单对多映射。我们构造d个密文字母表:
B1={bj0,bj1……,bjn-1} j=0,1,……,d-1
同样定义d个映射:
fj>bj
fj(ai)=bji
最后设明文空间M=(m0,m1,……,md-1,md,……) 密文空间C=(f0(m0),f1(m1),……,fd-1(md=1),fd(md),……)
由上可知,代替密码的密钥就是这组应设函数或密文字母表。

‘陆’ 置换密码中的明文

置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。置换密码也叫换位密码。试编程实现矩阵换位密码。它的加密方法是将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,形成密文。你说的这个密文我不太懂,你最好是下一个针对些明文的软件.这有个网些你了解一下也好." http://www.pudn.com/downloads157/sourcecode/crypt/detail700963.html"

‘柒’ 用C语言或者其他语言编写替代密码和置换密码

给你,自己再稍微改造一下吧:
#include "stdio.h"
#include "conio.h"

main()
{
int k,i=0;
char a[100],b[100];
printf("qing shu ru ni de mi wen \n");
gets(a);
printf("qing shu ru mi shi \n");
scanf("%d",&k);
printf("\n");
do{
b[i]=(char)(a[i]+k);
if(b[i]>122){
b[i]=(char)(b[i]-26);
}
i++;
}while(a[i]!='\0');
puts(b);
getch();
}

‘捌’ 置换密码的介绍

置换只不过是一个简单的换位,每个置换都可以用一个置换矩阵Ek来表示。每个置换都有一个与之对应的逆置换Dk。

阅读全文

与置换密码算法实验报告相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:578
python员工信息登记表 浏览:376
高中美术pdf 浏览:160
java实现排列 浏览:512
javavector的用法 浏览:981
osi实现加密的三层 浏览:231
大众宝来原厂中控如何安装app 浏览:913
linux内核根文件系统 浏览:242
3d的命令面板不见了 浏览:525
武汉理工大学服务器ip地址 浏览:148
亚马逊云服务器登录 浏览:524
安卓手机如何进行文件处理 浏览:70
mysql执行系统命令 浏览:929
php支持curlhttps 浏览:142
新预算法责任 浏览:443
服务器如何处理5万人同时在线 浏览:250
哈夫曼编码数据压缩 浏览:425
锁定服务器是什么意思 浏览:383
场景检测算法 浏览:616
解压手机软件触屏 浏览:348