加密解密程序设计

合集下载

加密解密程序设计

加密解密程序设计

加密解密程序设计

加密解密程序设计通常用于保护敏感信息的传输和存储,确保只有授

权的用户才能访问和理解这些信息。本文将讨论一个基本的加密解密程序

设计,其中包含了常用的加密算法和解密算法,以及一些常见的加密解密

技巧和策略。

一、加密算法设计

1. 替换加密算法(Substitution Cipher):将原始消息中的字符替

换为其他字符,通常使用一个固定的字母表和一个加密密钥。例如,可以

通过移位加密算法将字母A替换为字母D,将字母B替换为字母E,以此

类推。解密时,将密文中的字符替换回原始字符即可。

2. 移位加密算法(Caesar Cipher):也称为凯撒密码,是一种简单

的替换密码。将原始消息中的每个字母按照固定的位移量向后移动,例如,位移量为3时,字母A将被替换为字母D,字母B将被替换为字母E,以

此类推。解密时,将密文中的字母按照相同的位移量向前移动即可恢复原

始消息。

3. 对称加密算法(Symmetric Cryptography):使用同一个密钥进

行加密和解密,常用的对称加密算法包括DES、AES和RC4等。加密时,

将原始消息和密钥作为输入,通过特定的算法生成密文。解密时,将密文

和相同的密钥作为输入,通过逆算法恢复原始消息。

4. 非对称加密算法(Asymmetric Cryptography):使用两个不同的

密钥进行加密和解密,分别为公钥和私钥。常用的非对称加密算法包括RSA、DSA和ECC等。加密时,将原始消息和公钥作为输入,通过特定的

算法生成密文。解密时,将密文和私钥作为输入,通过逆算法恢复原始消息。

c语言程序设计文件加密解密

c语言程序设计文件加密解密

本文由小引毛407530贡献

doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。

程序报告设计 题目:加密解密处理

程 序 设 计 报 告 的 电 子 文 档 ( B10080128— 程 序 设 计.doc )

老师对作业要求。 一. 老师对作业要求。 1:对学生课程设计两周的纪律及提交内容的要求: :对学生课程设计两周的纪律及提交内容的要求: (1) 规定上机的时间内不得无故缺勤, ) 规定上机的时间内不得无故缺勤, 有事需要向指导老师书面请 假; (2) 上机时禁止玩游戏,屡教不改者,实习成绩可为不及格; ) 上机时禁止玩游戏,屡教不改者,实习成绩可为不及格; 的有关工具书, (3) 每人手头准备一至两本 C/C++的有关工具书,上机前作好充 ) 的有关工具书 分的准备, 分的准备,包括事先写好主要算法的程序

代码以保证充分利用上机的时间调试程序; 代码以保证充分利用上机的时间调试程序; (4) 同组可以讨论思路,但是程序要自己完成,不可抄袭,若完全 ) 同组可以讨论思路,但是程序要自己完成,不可抄袭, 抄袭别人的,实习成绩可为不及格; 抄袭别人的,实习成绩可为不及格; (5) 实习的最后阶段认真完成实习报告的电子文档。 ) 实习的最后阶段认真完成实习报告的电子文档。 报告内容不得 少于 15 页。 (6) 每个学生最后提交的材料: ) 每个学生最后提交的材料: 压缩文件一个,起名为:学号名 题目名 题目名.rar(如:B06020127_学生 压缩文件一个,起名为:学号名_题目名 ( 学生 管理系统.rar) 该压缩文件中包含下列 ) 。该压缩文件中包含下列 管理系统 。

rsa加密解密算法c语言程序

rsa加密解密算法c语言程序

rsa加密解密算法c语言程序

RSA加密解密算法是一种公钥加密算法,发明于1977年,基于两个大质数的乘积难分解性,能够对短文本进行加解密。以下是RSA加密解密算法的C语言程序。

一、密钥生成

首先定义了一个结构体存储RSA密钥,该结构体包含三个元素:n、e和d。

- n = p * q,其中p和q为大质数;

- e为与(p - 1) * (q - 1)互质的自然数,一般选取65537;

- d为e模(p - 1) * (q - 1)的逆元素,即满足e * d ≡ 1 (mod (p - 1) * (q - 1)))的自然数。

generateRSAKey函数通过调用randomPrime函数生成两个大质数p和q,再通过Euclidean函数计算(p - 1) * (q - 1)的值phi,最后继续使用extendedEuclidean函数计算d的值,最终将生成的密钥存储在RSAKey结构体中。

```c

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <math.h>

#define k 1024 // 密钥长度

typedef struct {

unsigned long long n;

unsigned long long e;

unsigned long long d;

} RSAKey;

unsigned long long randomPrime(unsigned long long n);

des密码算法程序c语言

des密码算法程序c语言

des密码算法程序c语言

一、概述

DES(数据加密标准)是一种常用的对称加密算法,它采用64位的密钥,对数据进行加密和解密。本程序使用C语言实现DES算法,包括密钥生成、数据加密和解密等操作。

二、算法实现

1.密钥生成:使用初始置换算法IP(56位)将明文转化为56位的分组,再将该分组经过一系列的逻辑函数F进行6轮处理,最终生成一个56位的密文。其中密钥包括56位数据位和8位奇偶校验位。

2.数据加密:将需要加密的数据转化为56位的分组,再经过DES 算法处理,得到密文。

3.数据解密:将密文经过DES算法处理,还原成原始明文。

三、程序代码

```c

#include

#include

#include

#include

//DES算法参数定义

#defineITERATIONS6//加密轮数

#defineKEY_LENGTH8//密钥长度,单位为字节

#defineBLOCK_SIZE8//数据分组长度,单位为字节

#definePADDINGPKCS7Padding//填充方式

#defineMAX_INPUT_LENGTH(BLOCK_SIZE*2)//数据输入的最大长度

//初始置换函数

voidinit_permutation(unsignedcharinput[BLOCK_SIZE]){

inti;

for(i=0;i

input[i]=i;

}

}

//逻辑函数F的定义

voidlogic_function(unsignedcharinput[BLOCK_SIZE],unsigned charoutput[BLOCK_SIZE]){

加密解密软件的设计与实现

加密解密软件的设计与实现

加密解密软件的设计与实现

一、引言

随着信息技术的高速发展,互联网的普及和应用,人们对于信息安全

的关注越来越高。在互联网时代,保护个人隐私和敏感信息的安全,成为

了一项重要的任务。加密解密软件是一种重要的工具,可以对信息进行保

护和保密,确保其安全传输与存储。本文将从加密解密软件的设计与实现

方面进行讨论。

二、加密解密软件的概述

加密解密软件是一种用于对文件或者数据进行加密和解密的软件工具。其主要功能是通过特定的算法,将用户的原始数据(明文)转换为一串密文,并存储到磁盘或者传输到网络中。而解密软件则是将密文重新转换为

明文的过程。加密解密软件广泛应用于各类文件、通信、数据库等环境,

保护用户的隐私和敏感信息的安全。

三、加密解密软件的设计要点

1.安全性

2.灵活性

3.用户友好性

4.效率

四、加密解密软件的实现步骤

1.界面设计

首先,进行加密解密软件的界面设计,设计一个简洁、直观的用户界面,包括文件选择按钮、加密解密按钮、密钥输入框等。用户通过界面可以选择需要加密或解密的文件,输入密钥等信息。

2.加密算法的选择与实现

根据需求,选择合适的加密算法,如AES、DES等。根据算法的具体实现规范,编写相应的加密算法代码。加密算法要保证其安全性、高效性和可靠性。

3.密钥管理

设计一个密钥管理模块,用于生成、保存和管理密钥。该模块可以支持不同的密钥长度和生成方式,如手动生成、密码生成等。密钥应保证其随机性和安全性。

4.文件加密解密

实现文件加密解密的功能,用户选择要加密或解密的文件后,通过加密算法和密钥,将文件转换为密文或明文,并保存到指定的位置。加密解密过程要求高效、安全,并提供相应的进度提示和结果反馈。

RSA加解密算法C语言的实现

RSA加解密算法C语言的实现

RSA加解密算法C语言的实现

RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,常用于保护网络通信的安全性。它的主要思想是通过生成一对公钥和私钥,使用公钥进行加密,使用私钥进行解密,从而保证安全性。RSA算法的实现一般包括生成密钥对、加密和解密三个部分。

1.生成密钥对

RSA算法的第一步是生成一对公钥和私钥。生成密钥对的过程如下:1)选择两个较大的质数p和q;

2)计算N=p*q,确定模数N;

3)计算欧拉函数φ(N)=(p-1)*(q-1);

4)选择一个整数e,满足1<e<φ(N)且e与φ(N)互质;

5)计算e关于模φ(N)的乘法逆元d,满足d * e ≡ 1 (mod

φ(N))。

生成密钥对的代码实现如下:

```c

#include <stdio.h>

typedef unsigned long long int ulli;

ulli gcd(ulli a, ulli b)

if (b == 0)

return a;

}

return gcd(b, a % b);

ulli inverse(ulli e, ulli phi)

ulli d = 0;

ulli x1 = 0, x2 = 1, y1 = 1, y2 = 0; ulli temp_phi = phi;

while (e > 0)

ulli quotient = phi / e;

ulli remainder = phi - quotient * e; phi = e;

e = remainder;

ulli x = x2 - quotient * x1;

加密解密软件的设计与实现

加密解密软件的设计与实现

加密解密软件的设计与实现

随着互联网的发展,人们对于信息安全的需求越来越高。为了保护个人隐私和敏感数据,加密解密软件应运而生。本文将介绍加密解密软件的设计与实现,以保障用户数据的安全性。

设计目标:

1.算法安全性:选择高强度的加密算法,确保数据无法被破解。

2.数据完整性:加密后的数据在传输过程中不能被篡改或者丢失。

3.使用便捷性:提供简单易用的用户界面,方便用户操作。

4.可扩展性:支持不同的加密算法,以满足用户不同的需求。

5.高效性:保持软件的响应速度和效率。

实现步骤:

1. 确定加密算法:选择适合的加密算法,如AES(Advanced Encryption Standard)、RSA(Rivest-Shamir-Adleman)等。

2.用户注册和登录:用户需要注册账号并设置密码,以便登录加密解密软件进行操作。

3.数据加密:用户在软件中选择需要加密的文件,输入密码后,软件使用选择的加密算法对文件进行加密。

4.数据解密:用户登录软件,选择需要解密的文件,输入密码后,软件使用相应的解密算法对文件进行解密。

5.文件传输:在加密和解密过程中,软件应保证数据的完整性,可以

使用MD5等校验算法验证文件的完整性。

6.用户界面设计:设计直观简单的用户界面,方便用户进行操作。软

件应提供加密、解密、注册、登录等功能的按钮,并显示操作结果和错误

提示。

7.错误处理:对于用户输入错误的密码或者文件损坏的情况,软件应

给出明确的错误提示,以便用户纠正错误。

8.安全保护:为了防止恶意攻击者获取用户的密码和加密文件,软件

c语言课程设计-文件加密解密(含源代码)

c语言课程设计-文件加密解密(含源代码)

c语言课程设计-文件加密解密(含源代码)

C

实验名称:文件加密解密

院系:软件学院

学号:

日期:2012年9月3日—9月17日

一:设计题目

1:设计图形用户界面。

2:对文件进行加密并对加密文件进行保存。

3:对加密了的文件进行解密。

二:设计过程

设计过程中遇到的困难和解决方法:

1:不能很好地理解题意(通过老师的讲解)。

2:不知道如何设计加密解密程序(通过翻阅书籍和上网查找资料) 过程:

首先通过学习老师提供的资料了解大致的设计过程并懂得运用一些以前没有学习过的c语言。先利用文本文件设计出加密解密的主要过程并能运行。知道如何运用fopen将原文件打开并用fread将原文件内容读出来,然后进行加密设计并将加密的数据用fwrite写进指

定的文件中并保存。然后读出加密的文件并解密并保存。最后在写出的程序中加入图形用户界面,运用window,box,gotoxy等进行设计。

三:源代码

#include <stdio.h>/* 标准输入、输出函数*/ #include /* 标准库函数*/

#include <string.h> //*字符串处理函数*/

#include /* 字符操作函数*/

#include

#include <dos.h>

#define key_down80

#definekey_up 72

#definekey_esc 1

#define key_enter 28

#defineSIZE 1

void box(int startx,int starty,int high,intwidth);

文件加密解密工具的程序设计及代码示例

文件加密解密工具的程序设计及代码示例

文件加密解密工具的程序设计及代码示例随着电子信息的快速发展,我们的个人和商业文件越来越多地存储在电脑和网络中。为了保护这些文件的机密性,文件加密解密工具成为了必需的软件之一。在本文中,我们将讨论文件加密解密工具的程序设计,并且提供一个代码示例来帮助你理解。

一、程序设计

在设计文件加密解密工具的程序时,以下几个关键点需要考虑:

1. 界面设计:一个直观友好的界面对用户来说非常重要。应该提供简单易懂的按钮和选项,使用户可以轻松选择加密或解密文件。

2. 加密算法选择:加密算法是文件加密解密工具的核心。现有的加密算法包括对称加密算法和非对称加密算法。在选择算法时,安全性和性能之间的权衡需要被谨慎考虑。

3. 密钥管理:为了保证文件的安全性,密钥的管理非常重要。工具应该提供一个方便的密钥管理界面,使用户可以生成、导入和导出密钥。

4. 异常处理:在程序设计中,应该考虑到各种异常情况,如无效的文件路径、权限问题等,以便给用户提示并提供解决方案。

二、代码示例

下面是一个使用Java编写的文件加密解密工具的代码示例:

```java

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.security.Key;

import javax.crypto.Cipher;

import javax.crypto.spec.SecretKeySpec;

public class FileEncryptDecryptTool {

private static final String ALGORITHM = "AES";

文件加密与解密程序

文件加密与解密程序

文件加密与解密程序

在当今数字化的时代,我们每天都会产生和处理大量的文件,其中

包含着各种各样的重要信息,如个人隐私、商业机密、金融数据等等。为了保护这些敏感信息不被未经授权的访问和窃取,文件加密与解密

程序应运而生。

文件加密,简单来说,就是将原本可以直接读取和理解的文件内容

通过特定的算法进行转换,使其变成一种无法直接理解的形式。只有

通过正确的解密程序和密钥,才能将加密后的文件恢复为原始的可读

状态。

加密的方式多种多样,常见的有对称加密和非对称加密两种。对称

加密就像是一把只有一个钥匙的锁,加密和解密都使用同一个密钥。

这种方式的优点是加密和解密速度快,但缺点是密钥的管理和分发比

较困难,如果密钥泄露,那么加密就失去了意义。非对称加密则使用

一对密钥,一个是公钥,一个是私钥。公钥可以公开,用于加密文件,而私钥则只有持有者知道,用于解密文件。这种方式的安全性相对较高,但加密和解密的速度较慢。

在实际应用中,选择哪种加密方式取决于具体的需求和场景。比如,如果是在一个相对封闭的系统中,对称加密可能就足够了。但如果是

在互联网上进行文件传输,非对称加密则更加合适。

那么,文件加密程序是如何工作的呢?以常见的 AES(高级加密标准)对称加密算法为例,它首先会将文件分成固定大小的块,然后对每个块进行一系列复杂的数学运算,包括替换、置换、混合等操作,最终将文件转换为加密后的形式。在这个过程中,密钥起到了关键的作用,它决定了运算的方式和结果。

而解密程序则是加密程序的逆过程。它使用相同的密钥,按照相反的步骤对加密后的文件进行运算,从而恢复出原始文件。

AES加密解密与代码实现详解

AES加密解密与代码实现详解

AES加密解密与代码实现详解

AES(Advanced Encryption Standard)是一种对称加密算法,其安

全性和性能都得到了广泛的认可和应用。在AES中,采用的是分组密码算法,即将明文分组加密,每个明文分组的长度为128比特(16字节),

密钥长度可为128比特、192比特或256比特。

1.初始化轮秘钥:根据密钥生成一系列轮秘钥,用于每轮加密操作。

2.轮加密:对明文进行一系列的轮操作,每轮操作包括字节代换、行

移位、列混淆和轮秘钥加。

- 字节代换(SubBytes):将每个字节替换为S盒中对应字节的值,

S盒是一个由固定变换生成的字节替代表。

- 行移位(ShiftRows):将第1、2、3行循环左移0、1、2个字节。

- 列混淆(MixColumns):通过一系列的线性变换,完成每个列的混

淆操作。

- 轮秘钥加(AddRoundKey):将当前轮的秘钥与状态矩阵进行异或

操作。

3.最后一轮加密操作:最后一轮操作不包括列混淆操作。

4.密文生成:将最后一轮加密操作的状态矩阵输出为密文。

解密操作与加密操作相反,主要是将轮操作中的逆变换应用到密文上,恢复出明文。

以下是一个AES加密解密算法的示例代码(使用Python语言实现):```python

from Crypto.Cipher import AES

from Crypto.Util.Padding import pad, unpad

from Crypto.Random import get_random_bytes

#生成一个随机的16字节密钥

微机原理课程设计加密解密算法

微机原理课程设计加密解密算法

微机原理课程设计加密解密算法

加密解密程序设计

1设计算法概述

本设计主要采⽤对密码符号的ASCII码进⾏变换和反变换来实现加密和解密。将ASCII码从33到126(除控制字符外)的字符分成2部分:ASCII码从33到63的字符为第⼀部分,ASCII码在64到128之间的字符为第⼆部分。每个字符加密后均变为2个字符。

第⼀部分通过查表法加密和解密,先建⽴62字节的密码表。加密时,因为⼀个字符加密后变为两个字符,所以ASCII码从33到63的31个字符密码对应62个字符,即62个字节的数据,计算待加密字符ASCII码对33的偏移量,在密码表中,以这个偏移量乘以2为偏移量的字节数据和下⼀字节数据就是对应密码;解密时,在表中找到相同字型数据时,计算它对表⾸的偏移,再加33,就是解密后的字符的ASCII码。

第⼆部分通过判断字符ASCII码的特性来加密和解密。先判断输⼊字符的ASCII码是否为3的倍数,若是则对应密码的⾼位字节为35 ('#'),低位字节为本⾝ASCII码减⼀;再判断输⼊字符的ASCII码是否为5的倍数,若是则对应密码的⾼位字节为

37(‘%’),低位字节为本⾝ASCII码减3;最后判断输⼊字符的ASCII码是偶数还是寄数,偶数的密码⾼字节为38(‘&’),低字节为本⾝ASCII码加1,奇数的密码⾼字节为39(‘'’),低字节为本⾝ASCII码加3 。解密的时候先判断⾼字节数据,若⾼字节数据位35、37、38、39则舍去⾼位字节,低位字节分别进⾏相应的解密,就得到原码。

2主程序设计

2.1主程序的功能

C语言实现AES加密解密

C语言实现AES加密解密

C语言实现AES加密解密

AES(Advanced Encryption Standard)是一种对称加密算法,它是

目前广泛使用的加密标准之一、本文将介绍如何使用C语言实现AES加密

和解密。

AES算法使用128位(16字节)的块进行加密和解密。它支持128位、192位和256位长度的密钥。在下面的示例中,我们将演示如何使用128

位的密钥进行AES加密和解密。

首先,我们需要准备一个AES加密所需的密钥。我们可以通过一个字

符串来表示密钥,然后将其转换为字节数组。在C语言中,可以使用

`strncpy`函数将字符串复制到字节数组中。

```c

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <openssl/aes.h>

#define AES_KEY_SIZE 128

int mai

//准备AES密钥

unsigned char key[AES_KEY_SIZE/8];

strncpy((char*)key, keyStr, AES_KEY_SIZE/8);

//创建AES加密上下文

AES_KEY aesKey;

AES_set_encrypt_key(key, AES_KEY_SIZE, &aesKey); //待加密的数据

unsigned char input[] = "Hello, AES!";

int inputLen = sizeof(input)/sizeof(input[0]); //加密数据

C语言中的加密与解密算法实现

C语言中的加密与解密算法实现

C语言中的加密与解密算法实现在计算机科学领域中,数据的加密与解密是非常重要的安全技术,

它能够确保我们在网络通信或存储数据时的隐私和安全性。C语言作

为一种广泛应用的编程语言,也提供了多种加密与解密算法的实现方式。本文将介绍C语言中常用的加密与解密算法以及它们的实现原理。

一、凯撒密码

凯撒密码是一种简单的替换密码,通过将字母按照指定的偏移量进

行移位来实现加密和解密。偏移量就是将字母移动的位数,例如偏移

量为1,则将字母A替换为B,B替换为C,以此类推。

以下是凯撒密码的C语言实现示例:

```c

#include

#include

void caesar_encrypt(char* message, int offset) {

int i;

for(i = 0; i < strlen(message); i++) {

if(message[i] >= 'a' && message[i] <= 'z') {

message[i] = (message[i] - 'a' + offset) % 26 + 'a';

}

else if(message[i] >= 'A' && message[i] <= 'Z') {

message[i] = (message[i] - 'A' + offset) % 26 + 'A';

}

}

}

void caesar_decrypt(char* message, int offset) {

int i;

for(i = 0; i < strlen(message); i++) {

if(message[i] >= 'a' && message[i] <= 'z') {

加密解密程序设计

加密解密程序设计

加密解密程序设计

加密解密程序是一种用于保护数据安全的工具,它可以将用户的敏感

信息转换为无法理解的形式,同时也可以将已加密的数据还原为原始的可

读形式。在本文中,我将介绍一个简单的加密解密程序的设计思路,并提

供一个Python代码示例。

设计思路:

1.选择加密算法:首先,我们需要选择一个合适的加密算法。常用的

加密算法包括对称加密算法和非对称加密算法。对称加密算法使用相同的

密钥来加密和解密数据,而非对称加密算法使用成对的密钥,一个用于加密,另一个用于解密。在本文中,我们将使用一个简单的对称加密算法,

称为凯撒密码。

2.实现加密和解密功能:根据选择的加密算法,我们需要实现相应的

加密和解密功能。对于凯撒密码,加密和解密的过程可以用下面的公式表示:

- 加密:C = (P + K) mod 26

- 解密:P = (C - K) mod 26

其中,C表示加密后的字符,P表示原始字符,K表示密钥,mod 26

表示对结果取模运算,确保结果在26个字母范围内。

3.用户界面设计:为了方便用户使用,我们还需要设计一个用户界面,用于接收用户输入和显示加密或解密后的结果。可以使用命令行界面或图

形界面,具体取决于应用场景和开发要求。

代码示例:

下面是一个使用凯撒密码实现加密解密功能的Python代码示例:```python

def encrypt(message, key):

encrypted_message = ""

for char in message:

if char.isalpha(:

if char.isupper(:

设计加密与解密方案

设计加密与解密方案

设计加密与解密方案

介绍

在数字化时代,对信息的安全性要求越来越高。加密与解密方案是保护敏感信

息免受未授权访问的重要手段。本文将介绍设计加密与解密方案的基本概念、常见加密算法和实施步骤。

基本概念

加密

加密是将原始数据转换为无法读取或理解的形式的过程。加密算法通过对数据

进行一系列复杂的数学变换来保护数据的机密性,使得只有授权的用户才能解读数据。

解密

解密是从密文中恢复原始数据的过程。解密算法利用加密算法中使用的逆变换

来将密文转换为原始数据,以便授权用户可以读取和理解数据。

密钥

密钥是加密和解密过程中使用的关键元素。密钥由一串特定的比特或字符组成,根据使用的加密算法和安全需求的不同,密钥的长度和复杂性也会有所变化。

对称加密

对称加密是指加密和解密都使用同一个密钥的加密算法。对称加密算法的优点

是加密和解密的速度快,但缺点是密钥的安全性难以保证。

非对称加密

非对称加密是指加密和解密使用不同密钥的加密算法,其中一个密钥称为私钥,用于解密数据;另一个密钥称为公钥,用于加密数据。非对称加密算法的优点是密钥的安全性较高,但缺点是加密和解密的速度较慢。

常见加密算法

对称加密算法

•DES (Data Encryption Standard):是一种对称加密算法,使用56位密钥和64位明文分组长度。DES算法使用相同的密钥进行加密和解密,已被AES算法取代。

•AES (Advanced Encryption Standard):是一种对称加密算法,使用128、192或256位密钥和128位明文分组长度。AES算法被广泛应用于各种应用场景,并被认为是目前最安全的对称加密算法之一。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计

题目加密解密程序设计

学院自动化学院

专业电气工程及其自动化班级

姓名

指导教师

年月9 日

课程设计任务书

学生姓名:专业班级:

指导教师:工作单位:自动化学院

题目:加密解密程序设计

初始条件:

掌握8086汇编语言程序设计方法,设计一个电子时钟,实现分、秒、时的显示与刷新功能。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1. 定义显示界面。

2. 调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。

3. 将存在系统内存区的时间数用数字式或指针式钟表的形式显示出来。

4. 获取键盘的按键值,判断键值并退出系统。

5. 撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。

时间安排:

12月26日-----12月28日查阅资料及方案设计

12月29日----- 1月 2 日编程

1月3日----- 1月7日调试程序

1月8日----- 1月9日撰写课程设计报告

指导教师签名:年月日

系主任(或责任教师)签名:年月日

目录

摘要 (1)

1设计任务及要求 (2)

1.1 加密解密设计的意义 (2)

1.2 程序设计任务 (2)

2 加密方法及方案比较 (3)

2.1 加密方法 (3)

2.2 加密方案及比较 (3)

3 加密解密设计流程及描述 (5)

3.1程序所需模块 (5)

3.2程序运行界面 (5)

3.3响铃程序 (6)

3.4功能选择程序 (6)

3.5数据循环输入子程序 (7)

3.6加密过程程序 (8)

3.7解密过程程序 (9)

3.8退出程序 (10)

3.9总体程序流程图 (11)

4 程序调试说明和结果分析 (12)

4.1 程序调试 (12)

4.2 程序运行结果 (12)

5 心得体会 (15)

参考文献 (16)

附录:设计原程序 (17)

本科生课程设计成绩评定

摘要

本次课程设计是需要通过掌握的8086汇编语言程序设计方法,设计出一个用于加密和解密的软件程序。程序运行后,首先显示‘Please Input Data:‟,并响铃一声,然后从键盘接受以字母开始的201个字节型数据,若首字母为‘E’,则将后续的200个数据进行加密后,显示在屏幕上;若首字母为‘R’,则将后续的200个数据解密,并显示在屏幕上。数据加密和解密功能的实现是利用对数据的ASCII码进行加减运算,使它改写为另一组数据,隐藏了原数据,使他人不能看到,从而保证了原数据的安全。

关键字:加密;解密;保证安全

1设计任务及要求

1.1加密解密设计的意义

当今的社会已经进入一个充满竞争的时代,同时也是一个信息知识化和知识产权化的时代,信息的取得方式来源和取得信息的多少都很大程度上成为了我们能否更顺利更优秀得完成工作而在激烈的竞争中取得胜利的关键所在,所以势必有很多私人的信息需要实行安全措施,并进行必要的保密工作,这就要用到加密程序,而当我们需要用到这些信息,并从加密系统中提取出来时,就要用到解密程序,也就是我们将要设计的加密和解密环节。

加密解密系统是目前运用最广泛和最重要的应用系统之一。在工作中,我们需要通过加密解密技术对工作中出现的对所在单位非常重要且需要十分保密的资料或文件进行加密,以确保自身的利益不被侵害;在生活中,密码箱也很有用处,而其原理正式加密解密环节;在军事上,为了更好的保护自己,保留更多的军事科学技术为我方所用,并且不让对手过于了解我方攻防战略战术和武器装备,需要对相关资料进行设置安全保护。可以看到,当今社会的方方面面已经越来越需要使用到加密和解密的装置来帮助我们更好的管理自己的生活,处理自己的工作,国家更是需要有安全保障才能越发强大,因此,加密解密系统的优良是完成生产生活的重要任务之一。

1.2程序设计任务

程序运行后,首先显示…Please Input Data:‟,并响铃一声,然后从键盘接受以字母开始的101个字节型数据,如果首字母为…E‟,则将后续的200个数据进行加密后,显示在屏幕上;如果首字母为…R‟,则将后续的200个数据解密,并显示在屏幕上。

撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计心得体会。

2 加密方法及方案比较

2.1 加密方法

加密系统需要涉及到明码(clear code)和暗码(dim code)之间的转换,明码就是当我们准备进行加密操作时被加密的字符数据,一般由键盘等输入设备输入给计算机;暗码则是明码被加密后变成的数据,明码和暗码是通过算法(algorithm)来进行转换的,而转化过程就是加密和解密的过程,很明显,加密和解密的算法是一一对应的,是一对反运算,在加密解密中叫做“对称算法”(symmetrical algorithm),加密解密环节的安全系数也主要取决于设计的算法,主要是防范用穷举法,debug法等破译方法。所以选择合适的算法是建立成熟可靠,安全性好的加密解密环节的关键所在。

常用数据加密算法有:数据加密算法有很多种,按照发展进程来分,经历了古典密码、对称密钥密码和公开密钥密码阶段,古典密码算法有替代加密、置换加密;对称加密算法包括DES和人AES;非对称加密算法包括RSA、背包密码、McEliece密码、Rabin、椭圆曲线、EIigamal D-H等。目前在数据通信中使用最普遍的算法有DESDESDESDES

算法、及RSARSARSARSA算法和PGP算法等。

2.2 加密方案及比较

方案一:对需要加密的数据进行分类,数字则减1加密,字母则加3加密,得到加密后的数据,解密只需对数字加1,字母减3,并通过DOS调用将所得结果显示在屏幕上。

方案二:加密时将输入的字符乘以二再和0FFH取异或;解密是将输入的字符除以二再和0FFH取异或。并通过DOS调用将所得结果显示在屏幕上。

比较:对数据进行异或加密容易超出字母和数字表示范围,产生特殊符号和图案,不易控制,这次设计主要针对普通数字和字母的加密,因此方案一比较适合。

本次设计主要针对输入的数字和字母进行加减加密,采用的方法为输入数据后,若第一个数据为E则把E后面的数字减1字母加3做为加密后的数据,若要对一组数据解密,则输入R并在其后输入想要解密的数据,程序运行后便会还原数据,得到解密后的数据。加密过程中会由于加密后数据超出数字或字符可以表示的范围,数子9加1后超出范围,

相关文档
最新文档