自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 RSA的算法优化加速-OPENSSL库-中国剩余定理和模平方运算

m=(p-1)*(q-1),选取较小的数e,使e 和m互质,即e和m的最大公约数为1,然后生成d,使d*emod m=1,最后丢弃P,q,m,则公钥为e,n,私钥为d和n.1不允许一个大数和int类型的数做运算,就算不定义类型,比如直接拿大数减去一个数字,这个数字也会被系统默认为int类型,虽然在程序语法上可以通过,但是结果不对,会有语义错误。中国剩余定理和模重复平方运算对于RSA的加速作用很明显,尤其是当数据特别大的时候,计算量会大大的简化,比如中国剩余定理可以让1024bit的数变成512bit的数。

2024-07-16 16:45:25 564

原创 RSA加密的大数实现-OPENSSL库的实现

注意:我使用的是linux系统,虚拟机kali,相关的安装博客大家在社区里找一下就有,我就不赘述了。

2024-07-16 16:30:07 815

原创 RSA加密算法-C语言版

实验原理:RSA算法给予一个十分简单的数论事实:将两个大素数想成十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密秘钥。RSA算法主要包括:秘钥生成,加密过程和解密过程。(1)加密过程。在秘钥生成过程中,首先生成两个大的质数(素数)p和q,令n=p*q;m=(p-1)*(q-1),选取较小的数e,使e 和m互质,即e和m的最大公约数为1,然后生成d,使d*emod m=1,最后丢弃P,q,m,则公钥为e,n,私钥为d和n.(2) 加密过程。

2024-07-16 16:20:04 416

原创 DES加密算法-C语言版

DES 算法所采用的分组大小为 64 位分组,所以输入的数据和密钥都是按照 64 位进行处理的,输出的密文也是 64 位一组。置换处理:在密码学中置换是指在保持数据不变的情况下,打乱数据的位置顺序的操作称作置换,在 DES 算法中每个置换处理都会按照 相应的置换表进行操作,置换处理在 DES 算法中得到了充分的运用,通过置换处理可以打乱输入数据的顺序,使输入的数据变得面目全非,当然也会造成雪崩效应,因为只要有一个数据位发生变化,就会影响到很多地方。使用熟悉的高级语言,编写一段程序,实现凯撒密码。

2024-07-16 16:08:13 729

原创 维吉尼亚密码

这里代码设置了一个无限循环,直到选0退出程序,该程序段不仅可以方便运行而且方便验证加解密的正确性。维吉尼亚密码引入了“密钥”的概念,根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。维吉尼亚密码是一种使用多表代换的代换密码,是在凯撒密码的基础上扩展出来的多表密码。使用熟悉的高级语言,编写一段程序,实现维吉尼亚密码。

2024-07-16 16:00:16 144

原创 凯撒密码实验报告-C语言版

凯撒密码:英语:Caesar cipher),或称凯撒加密、凯撒变换、变换加密,是一种最简单且最广为人知的加密技术。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。通过多次使用凯撒密码来加密并不能获得更大的安全性,因为使用偏移量A加密得到的结果再用偏移量B加密,等同于使用A+B的偏移量进行加密的结果。

2024-07-16 15:53:19 289

原创 课程设计设计题目 模拟实现请求分页虚存页面替换算法

1. 理解虚拟内存和请求分页管理机制的基本概念;2. 学习不同的页面替换算法,包括但不限于FIFO、LRU、OPT等;3. 通过模拟实现页面替换算法,加深对操作系统内存管理的理解。在操作系统当中,设计并实现一个模拟环境,用于模拟请求分页虚拟存贮中的页面替换过程。需要创建一个模拟的内存环境,包括内存页框、页面、进程等概念。需要实现页面的加载、访问和替换过程,并能够追踪页面的访问情况。在操作系统中,对FIFO、LRU、OPT等页面替换算法进行模拟,分析并比较它们的性能和效率。

2024-07-16 15:29:46 700

原创 课程设计设计题目 读者-写者问题

1. 学习并实现进程同步机制;2. 理解互斥(Mutex)和信号量(Semaphore)的使用*;3. 掌握解决并发访问问题的方法。在操作系统中,需要设计一个算法来控制对共享资源的访问,确保数据的一致性和完整性。在操作系统中,需要考虑效率和公平性,避免饥饿和死锁。设计思想通常基于使用互斥锁来保护资源,以及使用信号量来控制读者和写者的数量。可以采用以下策略:1使用一个互斥锁来保护资源的读写操作。2使用两个信号量,一个用于控制读者的数量(读者信号量),另一个用于控制写者(写者信号量)。

2024-07-16 09:04:09 362

原创 操作系统原理课程设计——多线程实现单词统计工具实验

问题:在count_words函数中,第一次使用互斥锁是将一个文件中的所有单词都统计完成才会放开,这样会造成一个进程统计,而另一个进程只能等待的现象,就算被统计的进程暂时空闲,也不会放开互斥锁,造成志愿的浪费。在每一个统计时都加锁,既保证了文件的安全性,互斥型号量不会被随意更改,又使得CPU不会空闲,充分利用CPU资源。//当遇到一个非字母数字字符且前一个字符是字母数字时,认为发现了一个单词//的边界。//声明并初始化一个互斥锁,用于同步对total_words变量的访问。

2024-07-15 08:28:21 653

原创 分治法实验报告

二分搜索算法、合并排序算法、快速排序算法、棋盘覆盖算法、最接近点对算法。

2024-07-09 09:15:24 186

原创 二分搜索算法和快速排序算法的结合

时间复杂度依旧是O(nlogn)上述源代码实现了以下几点。1,可以自己定义输入。2,可以不按顺序输入。

2024-07-09 08:59:38 179

原创 棋盘覆盖算法的三种实现

棋盘覆盖算法在处理时采用的方法不同,顺序不同,得到的问题的解也会不同,(我们事先规定好以左上、右上、左下、右下1三种算法的覆盖图案不同2如果原始图中的已覆盖方格位置不同,导致覆盖图案也不同3如果四个子问题的处理顺序不同,覆盖方案也不同4这三种算法的效率比较:栈运行时间最短,队列运行时间最长。

2024-07-08 10:35:19 456

原创 分治法实现删数问题

有一个长度为n的正整数,从中取出k(k < n)个数,使剩余的数保持原来的次序不变,求这个正整数经过删数之后最小是多少。输入格式:n和k输出格式:一个数字,表示这个正整数经过删数之后的最小值。

2024-07-07 22:22:15 143

原创 求解两个质数的最大公因数

最大公因数,也称最大、最大公,指两个或多个共有中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大数记为(a,b,c),多个的最大公约数也有同样的记号。求最大公约数有多种,常见的有法、。与最大公约数相对应的概念是,a,b的记为[a,b]

2024-07-07 22:00:27 261

原创 分治法求解大整数相乘问题

【代码】分治法求解大整数相乘问题。

2024-07-07 21:56:34 159

原创 分治法求众数

【代码】分治法求众数。

2024-07-07 21:55:38 63

原创 实验五 独占设备分配与回收模拟

1. 对理论课中学习的设备管理和文件管理当中的概念做进一步的理解;2. 明白设备管理的主要任务;3. 了解设备管理任务的主要实现方法;4. 通过编程,学会独占设备的分配,回收等主要算法的原理。1.独占设备通常使用静态分配方式,即在作业执行准备期间分配所需设备,作业执行期间设备归该作业占用,直到作业执行结束才归还给系统。2.设备分配通过“设备分配表”来实现,该表记录独占设备类型、数量及分配情况。3.设备分配表由“设备类表”和“设备表”两部分组成。

2024-07-07 17:55:44 520

原创 实验四 动态多分区存储管理模拟

1.对理论课中学习的内存管理当中的概念做进一步的理解;2. 明白内存管理的主要任务;3.了解内存管理任务的主要实现方法;4.掌握内存的分配,回收等主要算法的原理;5. 通过编程,熟悉分区式存储管理方法中内存分配回收算法的实现方式。

2024-07-07 17:53:44 740

原创 实验三 进程的并发执行和管道进程间通信

1. 对理论课中学习的进程,程序等的概念做进一步地理解,明确进程和程序的区别;2. 加深理解进程并发执行的概念,认识多进程并发执行的实质;3. 观察进程争夺用资源的现象,分析其过程和原因,学习解决进程互斥的方法;4. 了解Linux系统中多进程之间通过管道通信的基本原理和应用方法;5. 对典型的多用户、多任务的、优先级轮转调度系统Linux有一定的了解。

2024-07-07 17:51:00 446

原创 进程间的管道通信

1. 对理论课中学习的进程,程序等的概念做进一步地理解,明确进程和程序的区别;2. 加深理解进程并发执行的概念,认识多进程并发执行的实质;3. 观察进程争夺用资源的现象,分析其过程和原因,学习解决进程互斥的方法;4. 了解Linux系统中多进程之间通过管道通信的基本原理和应用方法。

2024-07-07 17:49:28 219

原创 多进程并发

在第一次写实验的时候,发现是先输出的父程序和子程序1,请教同学之后发现少了一个sleep函数, sleep():睡眠time秒,可以实现代码之间的交错进行,从而可以交错打印进程的pid。最初编写实验时,发现进程输出不是交错进行的,原因是缺少了sleep函数,导致父子进程的输出没有交错显示。1. 对理论课中学习的进程,程序等的概念做进一步地理解,明确进程和程序的区别;3. 观察进程争夺用资源的现象,分析其过程和原因,学习解决进程互斥的方法。2. 加深理解进程并发执行的概念,认识多进程并发执行的实质;

2024-07-07 14:22:05 854

原创 连接查询及视图的使用

4、创建学生平均成绩视图(V_StudAvgScore),其中包括学生学号(StudNo)、姓名(StudName)、平均分(AvgScore)、总分(SumScore)、最高分(MaxScore)、最低分(MinScore)、课程门数(CountCourse)字段。5、利用第4题的结果,查询平均分在80~85和60~70的数据记录,其中包括学号、姓名、所在系、平均分、课程门数字段。6、利用第4题的结果,查询平均分大于80的学生基本信息,其中包括学号、姓名、性别、年龄、所在系、平均分字段。

2024-07-05 19:53:54 577

原创 SQL数据统计处理

2、在学生选课表和学生表中,统计学生平均分在60~70和90~100的学生成绩记录,包括学生学号、学生姓名、总分、平均分、最高分、最低分、所修课程门数字段。在学生选课表、学生表中,查询学生成绩重修(成绩<60)门数大于10门的学生基本信息(查询结果包括学号、姓名、性别字段)。1、在学生选课表中,统计学生平均分大于70的成绩记录。包括学生学号、总分、平均分、课程门数、课程最高分、最低分字段。3、在学生选课表和学生表中,查询性别为女并且平均分大于80的学生基本信息。学生表:Student(

2024-07-05 19:51:16 752 1

原创 SQL高级查询的应用

7、在学生选课表和学生表中,统计各学生所有课程平均分、总分、最高分、最低分、所修课程门数,包括学生学号、学生姓名、平均分、总分、最高分、最低分、所修课程门数字段,并按平均分高低排序。8、在学生选课表和课程表中,统计各门课程平均分、所修人数、课程最高分、课程最低分,包括课程编号、课程名称、课程平均分、课程最高分、课程最低分、所修人数字段,并按平均分高低排序。3、在学生表、学生选课表、课程表中,查询学生的学号、姓名、课程编号、课程名称和课程成绩信息。4、在学生选课表和学生表中,查询性别为女的所有学生成绩记录。

2024-07-05 19:48:55 837

原创 SQL简单查询语句的使用

中有很多的表达方式,在实现相同的结果的同时往往有很多不同的代码可以实现,这使得数据库编程的代码的灵活性更高,同时在一定程度上,降低了上手难度。3、在学生表中,选出学号、姓名、 性别,将表结构和数据同时存入新表名为ChineseInfo的表中,新表中的各属性以中文命名。6、在学生选课表中,查询成绩不在[80,90]之间的所有学生成绩记录。5、在学生选课表中,查询成绩在[80,90]之间的所有学生成绩记录。2、在学生表中,查询所有学生姓名不重名(即无重复姓名)。1、在学生表中,查询年龄最小的1名学生的信息。

2024-07-05 19:47:38 549

原创 存储过程、自定义函数和触发器

实验代码:createfunctiondbo()returnsintASbegindeclare@nint;return@n;endgo测试语句以查看结果selectdbo();实验代码:--创建一个名为 students_avg_grade 的函数,它接受一个学生ID作为参数,并返回该学生的平均成绩CREATEFUNCTIONdbo@studentIDINT。

2024-07-05 19:43:50 554

原创 使用SQL语句创建数据表和操作数据

使用SQL语句创建数据表和操作数据

2024-07-05 19:26:50 904 1

使用DOS命令完成 子程序及 IO 程序设计

使用DOS命令完成 子程序及 IO 程序设计

2024-07-07

实验五 汇编语言完成循环程序设计

实验五 汇编语言完成循环程序设计

2024-07-07

使用汇编语言完成分支程序设计

使用汇编语言完成分支程序设计

2024-07-07

屏幕字符显示方法与汇编过程实验

屏幕字符显示方法与汇编过程实验

2024-07-07

汇编语言实验内存操作数及寻址方法

汇编语言实验内存操作数及寻址方法

2024-07-07

DOS、DEBUG 常用命令及 8086 指令使用

DOS、DEBUG 常用命令及 8086 指令使用

2024-07-07

存储过程、自定义函数和触发器

1、创建一个带输入参数的存储过程,输入参数n执行存储过程得到n的阶乘。测试5!。 2、创建一个简单的存储过程(SCInfo),要求结果输出选课信息,包括学号、姓名、课程号、课程名和成绩。 3、创建一个带输入参数的存储过程,输入分数参数执行存储过程得到平均分大于该分数的学生统计成绩信息(包括学号、姓名、平均分、课程门数字段)。 4、创建带两个输入参数和一个输出参数的存储过程,执行存储过程时,输入参数为分数段,输出参数为得到该分数段的人次数。 5、创建一个自定义函数,函数返回值为全体学生人数,并写出测试语句以查看结果。 6、创建一个自定义函数,函数返回值为某个学生的平均成绩,并写出测试语句以查看结果。 7、在选课表上建立更新触发器,当对表SC的Grade属性进行修改时,若分数增加了10%则将此次操作记录到下面表中:SC_U(Sno,Cno,Oldgrade,Newgrade),其中Oldgrade是修改前的分数,Newgrade是修改后的分数。写出测试语句以查看结果。

2024-07-05

实验5 连接查询及视图的使用

1、 在学生表和学生选课表中,分别使用内连接、左连接、右连接、全连接查询学生的学号、姓名、性别、成绩。 2、 统计各课程平均分、总分、最高分、最低分、参考人数,查询结果包括课程名称(CourseName)、课程总分(SumScore)、课程平均分(AvgScore)、课程最高分(MaxScore)、课程最低分(MinScore)、参考人数(CourseCount)字段(使用INNER JOIN实现)。 3、 将第2题所写的SQL语句创建成视图(V_GetCourseScore),在视图中查询参考人数大于30小于50的所有课程信息 创建学生平均成绩视图(V_StudAvgScore),其中包括学生学号(StudNo)、姓名(StudName)、平均分(AvgScore)、总分(SumScore)、最高分(MaxScore)、最低分(MinScore)、课程门数(CountCourse)字段

2024-07-05

实验4 SQL数据统计处理

1、在学生选课表中,统计学生平均分大于70的成绩记录。包括学生学号、总分、平均分、课程门数、课程最高分、最低分字段。 2、在学生选课表和学生表中,统计学生平均分在60~70和90~100的学生成绩记录,包括学生学号、学生姓名、总分、平均分、最高分、最低分、所修课程门数字段。 3、在学生选课表和学生表中,查询性别为女并且平均分大于80的学生基本信息。 4、统计平均分各分数段人数。 5.在学生选课表、学生表中,查询学生成绩重修(成绩<60)门数大于10门的学生基本信息(查询结果包括学号、姓名、性别字段)。

2024-07-05

使用SQLSEVER完成SQL高级查询的应用

使用SQLSEVER完成SQL高级查询的应用

2024-07-05

SQL简单查询语句的使用

SQL简单查询语句的使用

2024-07-05

使用SQL语句创建数据表和操作数据

使用SQL语句创建数据表和操作数据

2024-07-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除