`
tomhibolu
  • 浏览: 1430913 次
文章分类
社区版块
存档分类
最新评论

C/C++语言考试题(加密/解密)

 
阅读更多

开发环境: Windows + Vs2008/Vs2010
开发需求描述:
使用用户输入加密密钥(字符串必须大于8个字符) K1...Kn,对一指定的二进制内容B1B2....Bn进行加密运算,具体的加密过程分为如下几步:
1.分块,将输入的二进制内容(一般从文件中读入)块按照128位进行分块,这样我们得到块区S1S2...Sn,不足部分使用0来填补。
2.置换,按照一个简单的规则进行置换,即将128位组成一个封闭环,每个位跟比自己在位置上大16的那个位进行置换,临近末尾的位替换使用环形规则进位后进行替换,具体举例置换的位调换关系如下:
1 2 3 4 56 7 .... 125 126 127 128
17 18 19 20 21 22 23 .... 13 14 15 16
此轮置换进行6轮。

3.密钥异或,将输入密码K1累加一遍直接按照128位截断对齐,举例而言,如果用户输入了9个字符A1A2A3A4A5A6A7A8A9,使用了上述对齐截断后组合为A1A2A3A4A5A6A7A8A9A1A2A3A4A5A6A7,形成了密钥串后直接按照如下方式进行3轮异或计算:
第一轮密钥使用A1A2A3A4A5A6A7A8A9A1A2A3A4A5A6A7;
第二轮密钥使用A1A2A3A4A5A6A7A8A9A1A2A3A4A5A6A7环移了6位(环形移位,具体规则同第2步中的原文置换移位);
第三轮密钥使用A1A2A3A4A5A6A7A8A9A1A2A3A4A5A6A7环移了12位(环形移位,具体规则同第2步中的原文置换移位);

4.组合,将生成密文块区进行组合并且分块写到密文文件当中。

提交制品要求:
1. 请依照上述要求设计一个加密算法的DLL(windows),并且设计相应的加密与解密函数API。
2. 针对你设计的加密、解密API以及其他辅助函数,定义你自己的品质要求目标,撰写单体测试用例以实现你的品质控制目标;
3. 针对你的DLL以及API,请提供Sample供其他开发者调用(Console或者GUI程序供用户使用检测你的加密算法)。
4. 要求提交的制品能够在Vs开发环境中直接编译运行。

分享到:
评论

相关推荐

    传智播客扫地僧视频讲义源码

    本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...

    合肥工业大学-c++上机考试习题

    1. **字符串加密解密**:利用异或运算进行字符级别的加密和解密,异或运算是位运算,相同字符异或结果为0,不同字符异或结果为1,可以通过两次异或还原原始字符串。 2. **日期计算**:计算特定月份的天数,涉及到...

    合肥工业大学计算机类C++上机考试题集

    1. **异或运算**:异或运算是二进制级别的操作,用于进行加密解密,通过异或相同的数据两次可以恢复原数据。在题目中,要求用户输入文本和密钥,程序通过异或运算实现文本的加密和解密。 2. **日期和闰年判断**:...

    des_dll加密程序

    标签中的"系统分析师 试题分类"表明这个主题可能与系统分析师考试中的某个问题或者案例分析有关,系统分析师是信息技术领域的一个专业角色,他们负责设计、分析和优化组织的信息系统,确保它们能够高效地支持业务...

    蓝桥杯2015-决赛-C大学-A组.pdf

    这要求选手具备基本的文件操作和加密解密知识,了解常见的压缩格式如ZIP或RAR以及如何使用相应的密码进行解压。 比赛时间设定为4小时,超时提交将被视为无效。这意味着选手需要合理安排时间,确保在规定时间内完成...

    2004-2007软件设计师考试历年试题与答案

    3. 编程语言:主要考察C/C++、Java、Python等主流编程语言的语法和应用。 4. 数据库技术:数据库设计、SQL语言以及数据库管理系统的基本概念和操作。 5. 网络与信息安全:网络协议、网络安全、数据加密与解密等。 6....

    C++课程设计推荐题目

    以下是 C++ 课程设计推荐题目,涵盖了多个领域,包括游戏开发、文件加密、彩票系统、信息管理系统、考试系统、计算器模拟、万年历等领域,每个题目都具有明确的需求和难点,旨在考察学生的编程能力和逻辑思维能力。...

    软件评测师考试历年试题及答案

    5. 程序设计语言:讲解C、C++或Java等编程语言的基本成分和面向对象编程,以及汇编、编译、解释系统的基础。 6. 标准化知识:标准化的概念、层次和生命周期,以及在软件测试中的应用。 7. 信息安全:涵盖信息安全...

    软考_软件设计师_2004-2010试题_去水印

    2. 编程语言:C/C++、Java、Python等主流编程语言的基本语法和编程思想。 3. 软件工程:软件开发过程、项目管理、质量管理、配置管理等。 4. 设计模式:常见的23种设计模式及其在实际开发中的应用。 5. 数据库:SQL...

    武汉大学计算机学院考研复试试题

    2. 编程语言:C/C++、Java、Python等是常见的考试内容,考生需熟悉至少一种编程语言,并能进行程序设计和调试。试题可能涉及语法特性、面向对象编程、异常处理等方面。 3. 计算机系统与架构:复试可能会考察计算机...

    2021-2022计算机二级等级考试试题及答案No.4008.docx

    计算机二级等级考试主要涵盖计算机基础知识、编程语言、数据库管理、网页制作、操作系统使用等多个方面的内容。以下是根据题目中给出的部分内容解析的相关知识点: 1. 指针是C/C++等编程语言中的重要概念,它是一种...

    C++50题答案.doc.pdf

    位运算在加密解密中经常使用,这里是用异或来实现简单的文本加密和解密。 2. **字符串处理**:题目中第一个问题要求对字符串进行加密解密,这就涉及到了字符串的处理。在C++中,字符串通常用字符数组来表示。题目中...

    2009年上半年软件设计师上下午试题及答案

    2. **编程语言**:C/C++、Java、Python等主流编程语言的语法、特性、程序设计思想。 3. **软件工程**:软件生命周期、需求分析、系统设计、测试方法、项目管理等。 4. **数据库设计**:SQL语言、关系数据库理论、...

    2007年上半年程序员上午下午试题及答案

    1. **编程基础**:包括C/C++、Java、Python等常见编程语言的基本语法、数据类型、控制结构、函数等。 2. **数据结构与算法**:如数组、链表、栈、队列、树、图等基础数据结构,以及排序、查找等算法。 3. **计算机...

    2021-2022计算机二级等级考试试题及答案No.905.docx

    5. **Long型输出**:在C/C++等语言中,用printf函数输出long型变量时,应使用%ld作为格式说明符,因此正确答案是B. 6. **WWW**:在互联网中,"WWW"代表World Wide Web,中文名称是万维网。 7. **链表优点**:链表...

    2021-2022计算机二级等级考试试题及答案No.13513.docx

    1. 计算机二级考试题:这是关于全国计算机等级考试的题目集,其中包含了Word、PowerPoint、数据库、编程语言等多个方面的知识。 2. Word2000另存为:在Word中,"另存为"功能允许用户将当前文档保存为其他格式,例如...

    江苏省2009年秋三级偏软试题

    2. **编程语言基础**:了解至少一种高级编程语言,如C、C++、Java或Python,理解基本语法结构、变量、数据类型、控制结构(循环、条件语句)、函数以及面向对象编程的概念。 3. **算法与数据结构**:学习常见算法,...

    清晰 STEMA考试 C++ 试卷(10月)

    ### 清晰 STEMA考试 C++ 试卷(10月)知识点解析 #### 一、选择题知识点解析 **第一题:十进制数转换为二进制** - **知识点**: - 十进制转二进制的方法。 - 二进制的基本构成。 **解析**:十进制数189转换成...

Global site tag (gtag.js) - Google Analytics