当前位置:文档之家› 加密解密程序实验报告

加密解密程序实验报告

程序设计实践

加密解密程序实验报告

课题概述

1.1课题目标和主要内容:

利用MFC类或者win32编写windows程序,实现加密解密的功能。

1.2系统的主要功能:

1.实现用户界面友好的操作。

2.具有对称编码体制,可以实现:

i.凯撒密码:能够自定义密钥,自由输入明文,进行加密、解密,在对话框中返回加密和

解密后的内容。

ii.置换密码:能够自定义密钥,自由输入明文,经矩阵变换进行加密、解密,在对话框中返回加密和解密后的内容

iii.对称加密DES:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序加密,解密结果。

3.具有非对称编码体制:

i. RSA加密解密:随机产生p,q,经检验是否互质,若不互质接着产生两个随机数,直

到二者互质为止。自动生成p,q,N及加密解密的密钥,可以自由输入明文,返回加密、

解密的内容。

ii. MD5消息摘要计算:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序的加密结果。

4.信息隐藏技术:

用LSB在图片(bmp格式,任意位置的图片)中写入信息,读取信息并显示出来,可

以擦除信息。可以自定义密钥。

5. AES加密解密:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序

加密,解密结果。

6. 以上的所有对文字加密解密的方法(除LSB以外其余所有方法),都可以用于文件加

密,解密,并能够及时保存加密,解密的信息到一个TXT文档,可以存在用户想存放

的地方。

7.更多:

链接了一个可加密解密,功能更为齐全的网站,若是上述方法不能满足用户需求,

可以在程序运行的窗口中点击相应按钮,在联网的条件下进行在线加密解密。

一、系统设计

2.1系统总体框架:

2.2主要的层次逻辑为:

1.界面窗口:

改善设计,修正效果图:

2.将书上的C++语言改用MFC适应的进行编程,实现相应功能:

凯撒加解密3.或者用系统函数调用WIN32编好的程序:

4.进行文件操作,加密解密后保存文件。

6.调用函数实现网页链接:

2.3设计思想:

(1)新建一个基于单文档的MFC应用程序,工程名称为secret。

(2)编辑菜单栏,添加可以实现的功能。并为实现功能建立并设计所需要的对话框,并建立相应的类。也要为对话框中的编辑栏添加相应的成员变量,根据算法设计

来定是value还是control类别,再为它们取好名字,选合适的变量类型,例如:

在我的程序里,我把密钥和明文一般定义为control类别,CEDIT类型,密文有CEDIT也有CString类型。这样可以方便实现把编辑栏中输入的信息传给程序,

再通过相应的还是进行一番调整后返回信息。

对话框中也还会有些BUTTON,要为他们添加消息响应函数实现操作。

为了自己方便起见,可以把对话框,菜单栏中相应项的ID改为自己能辨别出来作用的。

(3)如有需要可以在Csecretview类中添加,显示对话框。

void CsecretView::Oncaser()

{

// TODO: 在此添加命令处理程序代码

mycaesar my_dlg;

my_dlg.DoModal();

}

直接在MFC程序中编写的操作,相关类如下。

2.4系统程序流程图及设计:

2.5模块划分图:

2.8类的关系图:

我们在编写加密解密程序时,主要使用了一下几个类:

2.7存储结构及内存分配:

CView 类

存储结构:主要使用数组、指针,存储密钥,明文,密文并对它们进行操作。

在DES,MD5等算法中一开始就需要存储矩阵等大量信息,在加密解密是也会占据内存,MD5占用的内存较大。

2.8关键算法分析:

1. 凯撒密码的实现:

[1]算法功能:输入密钥与明文,用for循环实现位移。从而加密,解密。

[2]算法基本思想:

需要将书上的C++语言转化为MFC适应的语言,如cout,cin都通过添加成员变量由对话框上的操作来实现。

[3]算法时间复杂度为O(1);空间复杂度为O(1);(由数组长度限制了输入密等

长度,故而不为O(n))

[4]其关键代码如下:

void mycaesar::Oncode()

{

// TODO: 在此添加控件通知处理程序代码

UpdateData(TRUE);

char s[100];

CString c;

SendDlgItemMessage(IDC_EDIT2, WM_GETTEXT, 100, (LPARAM)s);

c = s;

for (int i = 0;i<=100; i++)

{

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

s[i] = ((int)(s[i] - 'a') + key) % 26 + 'a';

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

s[i] = ((int)(s[i] - 'A') + key) % 26 + 'A';

}

SendDlgItemMessage(IDC_EDIT3, WM_SETTEXT, 100, (LPARAM)s);

SendDlgItemMessage(IDC_EDIT3, EM_SETSEL, 0, -1);

UpdateData(FALSE);

}

void mycaesar::Ondecode() //解密算法实现

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);

char ss[100];

CString c;

SendDlgItemMessage(IDC_EDIT3, WM_GETTEXT, 100, (LPARAM)ss);

c = ss;

for (int i = 0; i <= 100; i++)

{

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

ss[i] = ((int)(ss[i] - 'a') - key) % 26 + 'a';

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

ss[i] = ((int)(ss[i] - 'A') - key) % 26 + 'A';

}

SendDlgItemMessage(IDC_EDIT4, WM_SETTEXT, 100, (LPARAM)ss);

SendDlgItemMessage(IDC_EDIT4, EM_SETSEL, 0, -1);

UpdateData(FALSE);

}

void mycaesar::Oncaser()

{

// TODO: 在此添加命令处理程序代码

mycaesar my_dlg;

my_dlg.DoModal();

}

2.置换加密的实现:

[1]算法功能:输入密钥与明文,用矩阵实现位移。从而加密,解密。

[2]算法基本思想:

用二维矩阵实现加密解密,化为一维数组后返回数据。

[3]算法时间复杂度为O(1);空间复杂度为O(1);(由数组长度限制了输入密等

长度,故而不为O(n))

[4]其关键代码如下:

void juzheng::OnEncrypt()

{

UpdateData(true);

char clear1[100] = { 0 };

SendDlgItemMessage(IDC_EDIT2, WM_GETTEXT, 100, (LPARAM)clear1);

SendDlgItemMessage(IDC_EDIT9, WM_GETTEXT, 100, (LPARAM)key_s);

SendDlgItemMessage(IDC_EDIT9, WM_GETTEXT, 100, (LPARAM)keyc);

len = strlen(clear1);

for (int i = 0; i< len; i++)

{

for (int j = 0; j < len - i - 1; j++)

{

if (key[i]>key[i + 1])

{

char ttt = key[i];

key[i] = key[i + 1];

key[i + 1] = key[ttt];

}

}

for (int k = 0, i = 0, j = 0; k<100; k++)

{

cleartext[i][j] = clear[k];

row = i + 1;

j++;

if (j >= len)

{

j = 0; i++;

}

}

for (int i = 0; i < len; i++)

{

for (int j = 0; j < len; j++)

{

if (key[j] == key_s[j])

{

for (int k = 0; k < row; k++)

{

ciphertext1[k][i] = cleartext[k][j];

}

}

}

char so[10000], r[100];

int q = 0;

int w = 0;

int b = 0;

for (int g = 0; g < 100; g++)

{

for (int h = 0; h < 100; h++)

{

so[b] = ciphertext1[g][h];

b++;

}

so[g] = r[g];

}

SendDlgItemMessage(IDC_EDIT1, WM_SETTEXT, 100, (LPARAM)clear1);

SendDlgItemMessage(IDC_EDIT1, EM_SETSEL, 0, -1);

UpdateData(false);

}

void juzheng::OnDecode()

{

// TODO: 在此添加控件通知处理程序代码

UpdateData(true);

char pp[100];

for (int i = 0; i < len; i++)

{

for (int j = 0; j < len; j++)

{

if (key[i] == key_s[j])

{

for (int k = 0; k < row; k++)

{

ciphertext2[k][i] = ciphertext1[k][j];

}

}

}

}

SendDlgItemMessage(IDC_EDIT2, WM_GETTEXT, 100, (LPARAM)pp);

SendDlgItemMessage(IDC_EDIT3, WM_SETTEXT, 100, (LPARAM)pp);

SendDlgItemMessage(IDC_EDIT3, EM_SETSEL, 0, -1);

UpdateData(false);

}

2.DES的MFC关键代码转化:

[1]算法功能:输入密钥与明文,用矩阵变化加密,解密。

[2]算法基本思想:

把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位。

I.初始置换:把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。

II.经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。

[3]算法时间复杂度为O(1);空间复杂度为O(1);(由数组长度限制了输入密等长

度,故而不为O(n))

[4]其关键代码如下:

void DES::SetKey(unsigned char* keyin, int length)

{

if (length>8)

{

return;

}

for (int i = 0; i < length; i++)

{

key[i] = keyin[i];

}

Char2Bit(key, bitkey, 8);

};

//初始置换IP

void DES::IP(bool str[64])

{

for (int i = 0; i < 32; i++)

{

lmsgi[i] = str[ip_table[i] - 1];

rmsgi[i] = str[ip_table[i + 32] - 1];

}

};

//初始逆置换函数

void DES::IPR(bool str[64])

{

bool temp[64];

for (int i = 0; i < 32; i++)//左右两部分组合

{

temp[i] = rmsgi[i];

temp[32 + i] = lmsgi[i];

}

for (int i = 0; i < 64; i++)

{

str[i] = temp[ipr_table[i] - 1];

}

};

//循环左移函数

void DES::LS(bool* keypart, int n)

{

bool temp;

for (int i = 0; i < n; i++)

{

temp = keypart[0];

for (int i = 0; i < 27; i++)

{

keypart[i] = keypart[i + 1];

}

keypart[27] = temp;

}

};

//子密钥生成

void DES::ProduceSubKey()

{

bool ctemp[28], dtemp[28]; //存放每轮左右各28位数据

bool keytemp[56]; //存放移位并组合后56位数据for (int i = 0; i < 28; i++)//密钥置换PC-1

{

ctemp[i] = bitkey[PC1_0_table[i] - 1];

dtemp[i] = bitkey[PC1_1_table[i] - 1];

}

for (int i = 0; i < 16; i++)

{

LS(ctemp, LS_table[i]); //两部分分别进行循环移位

LS(dtemp, LS_table[i]);

for (int j = 0; j <28; j++)

keytemp[j] = ctemp[j];

keytemp[28 + j] = dtemp[j];

}

for (int j = 0; j < 48; j++) //密钥置换PC-2

{

subkeys[i][j] = keytemp[PC2_table[j] - 1];

}

}

};

//f函数中的扩展运算e

void DES::funce(bool bitin[32], bool bitout[48])

{

for (int i = 0; i < 48; i++)

{

bitout[i] = bitin[e_table[i] - 1];

}

};

//异或运算(模2加)

void DES::XOR(bool a[], bool b[], bool c[], int length) {

for (int i = 0; i < length; i++)

{

if (a[i] == b[i])

c[i] = 0;

else

c[i] = 1;

}

};

//S盒总运算

void DES::SBox(bool in[48], bool out[32])

{

bool _in[6], _out[4];

for (int i = 0; i < 8; i++)

{

for (int j = 0; j < 6; j++)

{

_in[j] = in[i * 6 + j];

}

subSBox(_in, _out, i);

for (int jj = 0; jj < 4; jj++)

out[i * 4 + jj] = _out[jj];

}

}

};

//每个S盒运算

void DES::subSBox(bool in[6], bool out[4], int box)

{

int raw, col;

raw = in[0] * 2 + in[5];// 行

col = in[1] * 2 * 2 * 2 + in[2] * 2 * 2 + in[3] * 2 + in[4];//列int result = sbox_table[box][raw * 16 + col];

for (int i = 3; i >= 0; i--)

{

out[i] = (result >> (3 - i)) & 1;

}

};

//f函数中的置换p

void DES::funcp(bool bitin[32], bool bitout[32])

{

for (int i = 0; i < 32; i++)

{

bitout[i] = bitin[p_table[i] - 1];

}

};

//子密钥控制下的变换f

void DES::funcf(bool in[32], int i, bool out[32])//i是子密钥序号{

bool temp1[48];

funce(in, temp1);//扩展运算e

bool temp2[48];

XOR(temp1, (bool *)subkeys[i], temp2, 48);

bool temp3[48]; //S盒运算

SBox(temp2, temp3);

funcp(temp3, out); //置换运算p

};

//

// des加密

void DES::Encrypt()

{

bool temp1[32], temp2[32];

IP(bitmsg); //初始置换ip

for (int i = 0; i < 16; i++)

{

if (i % 2 == 0)

{

CopyArray(rmsgi, lmsgi1, 32);//L1=R0

funcf(rmsgi, i, temp1);//f(R0,k0)

XOR(lmsgi, temp1, temp2, 32);//L0+f(R0,k0)

CopyArray(temp2, rmsgi1, 32); //R1=L0+f(R0,k0) }

else

{

CopyArray(rmsgi1, lmsgi, 32);//L2=R1

funcf(rmsgi1, i, temp1); //f(R1,k1)

XOR(lmsgi1, temp1, temp2, 32);//L1+f(R1,k1)

CopyArray(temp2, rmsgi, 32);//R2=L1+f(R1,k1) }

}

IPR(bitcipher); //逆初始置换ip

Bit2Char(bitcipher, cipher);

};

//

//数组之间的赋值

void DES::CopyArray(bool a[], bool b[], int size)

{

for (int i = 0; i < size; i++)

{

b[i] = a[i];

}

};

//

//解密

//ok

void DES::Decrypt()

{

bool temp1[32], temp2[32];

IP(bitcipher);//初始置换ip

for (int i = 0; i < 16; i++)

{

if (i % 2 == 0)

{

CopyArray(rmsgi, lmsgi1, 32); //L1=R0

funcf(rmsgi, 15 - i, temp1);//f(R0,k15)

XOR(lmsgi, temp1, temp2, 32);//L0+f(R0,k15)

CopyArray(temp2, rmsgi1, 32);//R1=L0+f(R0,k15)

}

else

{

CopyArray(rmsgi1, lmsgi, 32); //L2=R1

//解密时子密钥顺序与加密相反

funcf(rmsgi1, 15 - i, temp1); //f(R1,k14)

XOR(lmsgi1, temp1, temp2, 32);//L1+f(R1,k14)

CopyArray(temp2, rmsgi, 32);//R2=L1+f(R1,k14)

}

}

IPR(bitclear);//逆初始置换ip

Bit2Char(bitclear, clear);

};

这样修改以后程序编译可以通过,但是运行时有错,按着网上方法尝试过好几种办法,也修改了电脑的相关配置,仍有问题,考虑到这和书上算法本质相同,故编写了一个win32程序,在MFC程序DES的消息响应函数中添加代码如下,实现调用显示win32

程序的结果:

void CsecretView::OnTrydes()

{

// TODO: 在此添加命令处理程序代码

ShellExecuteA(NULL, "open", "notepad.exe", "DES.exe", NULL,

SW_SHOWNORMAL);

//ShellExecute(NULL, "open", "C://Test.txt", NULL, NULL, SW_SHOWNORMAL); }

3.MD5关键算法:

[1]算法功能:实现消息摘要的信息加密,解密。

[2]算法基本思想:

MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,

经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分

组级联后将生成一个128位散列值。

[3]算法时间复杂度为O(n);

[4]其关键代码如下:

void MD5::encode(const uint32* input, byte* output, size_t length) {

for (size_t i = 0, j = 0; j < length; ++i, j += 4) {

output[j] = (byte)(input[i] & 0xff);

output[j + 1] = (byte)((input[i] >> 8) & 0xff);

output[j + 2] = (byte)((input[i] >> 16) & 0xff);

output[j + 3] = (byte)((input[i] >> 24) & 0xff);

}

}

void MD5::decode(const byte* input, uint32* output, size_t length) {

for (size_t i = 0, j = 0; j < length; ++i, j += 4) {

output[i] = ((uint32)input[j]) | (((uint32)input[j + 1]) << 8) |

(((uint32)input[j + 2]) << 16) | (((uint32)input[j + 3]) << 24);

}

}

string MD5::bytesToHexString(const byte* input, size_t length) {

string str;

str.reserve(length << 1);

for (size_t i = 0; i < length; ++i) {

int t = input[i];

int a = t / 16;

int b = t % 16;

str.append(1, HEX[a]);

str.append(1, HEX[b]);

}

return str;

}

string MD5::toString() {

return bytesToHexString(digest(), 16);

}

string MD5::ToMD5(const string& str) //MD5加密,其中密钥key=xyf,密钥需加在加密之前

{const string str_word = str + MD5_Key;

reset();

update(str_word);

return toString();

}

实际上在win32中按照书上编好程序以后,只需要在Csecretview类中添加如下代码调用即可:

网络安全实验报告

网络安全实验报告 姓名:杨瑞春 班级:自动化86 学号:08045009

实验一:网络命令操作与网络协议分析 一.实验目的: 1.熟悉网络基本命令的操作与功能。 2.熟练使用网络协议分析软件ethereal分析应用协议。 二.实验步骤: 1. ping tracert netstat ipconfig telnet netcat Arp route nslookup Ssh 2.协议分析软件:ethereal的主要功能:设置流量过滤条件,分析网络数据包, 流重组功能,协议分析。 三.实验任务: 1.跟踪某一网站如google的路由路径 2.查看本机的MAC地址,ip地址 输入ipconfig /all 找见本地连接. Description . . .. . : SiS 900-Based PCI Fast Ethernet Adapte Physical Address.. . : 00-13-8F-07-3A-57 DHCP Enabled. . .. . : No IP Address. . . .. . : 192.168.1.5 Subnet Mask . . .. . : 255.255.255.0 Default Gateway .. . : 192.168.1.1 DNS Servers . . .. . : 61.128.128.67 192.168.1.1

Default Gateway .. . : 192.168.1.1 这项是网关.也就是路由器IP Physical Address.. . : 00-13-8F-07-3A-57 这项就是MAC地址了.

文件加密与解密实验报告

HUNAN UNIVERSITY 程序设计训练——文件加密与解密 报告 学生姓名X X X 学生学号20110102308 专业班级建环308 指导老师何英 2012-07-01至 2012-07-13

一、程序设计目的和要求 (3) 二、程序设计内容 (4) 1、总体设计 (4) 1.1主控选择模块 (4) 1.2加密模块 (4) 1.3解密模块 (4) 2、流程图 (5) 三模块详细说明 (6) 四、测试数据及其结果 (7) 五、课程设计总结 (8) 六、附录 (9) 附录1:参考文献 (9) 附录2:程序源代码 (9)

一、程序设计目的和要求 1、目的:为保证个人数据资料不被他人窃取使用,保护个人隐私及个人文件。设计一个基于c语言的文本文件加密及解密软件,可以方便对文本文件的加密与解密。本设计实现了文本文件的解密及解密,运行软件之后只需输入任意一个文本文件的文件名及后缀名即可对该文本文件进行加密或解密操作。本设计的加密与解密系统,使用了面向各类文件的方法,运用Microsoft Visual C++ 6.0实现具有加密、解密、帮助信息、读取文本文件、显示结果、退出等功能的文件加密与解密系统。 2、要求: (1)从键盘输入要进行加密的一行字符串或者需要加密的文件名。 (2)显示菜单: (3)选择菜单,进行相应的操作。加密方法是设置一加密字符串以及对文件的哪些部分进行加密;加密是将原始文件加密并保存到文件中;解密是将加了密的文件还原并保存到文件中,同时应比较与原始文件的一致性; 3、其他要求 (1)变量、函数命名符合规范。 (2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

《信息安全技术》实验4基于PGP的Email安全安全通信实验实验报告

《信息安全技术》实验4基于PGP的Email安全安全通信 实验实验报告 实验序号: 4 《信息安全技术》实验报告 实验名称: 网络安全通信实验姓名: 学院: 计算机科学与工程学院专业: 网络工程 班级: 学号: 指导教师: 实验地址: 实验日期: 常熟理工计算机科学与工程学院《信息安全技术》实验报告 说明 一(排版要求 1. 实验报告“文件名”按模板要求填写。 例:《信息安全技术》实验报告.14网络1班.090214101.蔡同寒.实验1.数据加密实验.doc 2. 一级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,四号字体,加粗。 3. 二级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,小四号字体,加粗。 4. 三级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,五号字体。

5. 正文:每段缩进量:2个汉字。两端对齐;汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 6. 图形要求 (1) 在正文中要有引用。 (2) 要有图名,图名位于图的下方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3) 图和图名“居中”。 7. 表格要求 (1) 在正文中要有引用。 (2) 要有表名,表名位于表的上方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3) 表和表名“居中”。 二(注意事项 1. 复制、拷贝、抄袭者取消成绩。 2. 没有安实验报告排版要求者不及格。 2 常熟理工计算机科学与工程学院《信息安全技术》实验报告 实验3.2 基于PGP的Email安全通信实验 1. 请回答实验目的中的思考题。 1)网络通信中有哪些应用需要用到加密, ( 答: 压缩文件、电子邮箱和网络云盘等。 (2)在网络通信中如何安全交换密钥, 答: 1)密钥预分发 2)密钥在线分发 3)基于身份的密钥预分发

信息安全加密实验报告

重庆交通大学实验报告 班级:计信专业2012级2班 学号: 631206060232 姓名:娄丽梅 实验项目名称:DES加解密程序设计与实现 实验项目性质:设计性(验证性) 实验所属课程:信息安全 实验室(中心):软件实验室 指导教师:米波 实验完成时间: 2014 年12月11日

一、实验目的 1、理解DES加密与解密的程序设计算法思想。 2、编写DES加密与解密程序,实现对明文的加密与解密,加深对数据加密与解密的理解,掌握DES加密算法思想,提高网络安全的编程能力。 二、实验主要内容及原理 (一)实验内容 1、掌握DES算法; 2、编写DES算法。 (二)实验原理 1、初始置换 初始置换在第一轮运算之前执行,对输入分组实施如下表所示的变换。此表应从左向右、从上向下读。在将这64位数据分为左右两部分,每部分分别为32位,将左32位留下,将右32位按照下表进行排列 2、密钥置换 一开始,由于不考虑每个字节的第8位,DES的密钥由64位减至56位。每个字节第8位可作为奇偶校验位以确保密钥不发生错误。接着,56位密钥被分成两部分,每部分28位。然后,根据轮数,这两部分分别循环左移l位或2位。在DES的每一轮中,从56位密钥选出48位子密钥(Sub Key)。 3、S盒置换 当产生了48位密钥后就可以和右边32位明文进行异或运算了,得到48位的密文。 再经过下论的S盒跌带,其功能是把6bit数据变为4bit数据,每个S盒是一个4行、16列的表。盒中的每一项都是一个4位的数。S盒的6个位输入确定了其对应的输出在哪一行哪一列。 4、P盒置换 S盒代替运算后的32位输出依照P盒进行置换。该置换把每输入位映射到输出位,任意一位不能被映射两次,也不能被略去,这个置换叫做直接置换。 5、再次异或运算 最后,将P盒置换的结果与最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始另一轮。 6、当进行到16轮后,最终进行一次末置换,形成密文

数据加密实验报告

实验报告 课程:计算机保密_ _ 实验名称:数据的加密与解密_ _ 院系(部):计科院_ _ 专业班级:计科11001班_ _ 学号: 201003647_ _ 实验日期: 2013-4-25_ _ 姓名: _刘雄 _ 报告日期: _2013-5-1 _ 报告评分:教师签字:

一. 实验名称 数据加密与解密 二.运行环境 Windows XP系统 IE浏览器 三.实验目的 熟悉加密解密的处理过程,了解基本的加密解密算法。尝试编制基本的加密解密程序。掌握信息认证技术。 四.实验内容及步骤 1、安装运行常用的加解密软件。 2、掌握加解密软件的实际运用。 *3、编写凯撒密码实现、维吉尼亚表加密等置换和替换加解密程序。 4、掌握信息认证的方法及完整性认证。 (1)安装运行常用的加解密软件,掌握加解密软件的实际运用 任务一:通过安装运行加密解密软件(Apocalypso.exe;RSATool.exe;SWriter.exe等(参见:实验一指导))的实际运用,了解并掌握对称密码体系DES、IDEA、AES等算法,及非对称密码体制RSA等算法实施加密加密的原理及技术。 ?DES:加密解密是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位。 ?BlowFish:算法用来加密64Bit长度的字符串或文件和文件夹加密软件。 ?Gost(Gosudarstvennyi Standard):算法是一种由前苏联设计的类似DES算法的分组密码算法。它是一个64位分组及256位密钥的采用32轮简单迭代型加密算法. ?IDEA:国际数据加密算法:使用128 位密钥提供非常强的安全性; ?Rijndael:是带有可变块长和可变密钥长度的迭代块密码(AES 算法)。块长和密钥长度可以分别指定成128、192 或256 位。 ?MISTY1:它用128位密钥对64位数据进行不确定轮回的加密。文档分为两部分:密钥产生部分和数据随机化部分。 ?Twofish:同Blowfish一样,Twofish使用分组加密机制。它使用任何长度为256比特的单个密钥,对如智能卡的微处理器和嵌入在硬件中运行的软件很有效。它允许使用者调节加密速度,密钥安装时间,和编码大小来平衡性能。 ?Cast-256:AES 算法的一种。 (同学们也可自己下载相应的加解密软件,应用并分析加解密过程) 任务二:下载带MD5验证码的软件(如:https://www.doczj.com/doc/3e16064570.html,/downloads/installer/下载(MySQL):Windows (x86, 32-bit), MSI Installer 5.6.11、1.5M;MD5码: 20f788b009a7af437ff4abce8fb3a7d1),使用MD5Verify工具对刚下载的软件生成信息摘要,并与原来的MD5码比较以确定所下载软件的完整性。或用两款不同的MD5软件对同一文件提取信息摘要,而后比较是否一致,由此可进行文件的完整性认证。

Flash型单片机的加密与解密

Flash型单片机的加密与解密 厂商利用单片机进行产品开发时,都会关心其代码和数据的保密性。考虑到用户在编写和调试代码时所付出的时间和精力,代码的成本是不言而喻的。 早期的单片机,代码是交给芯片制造商制成掩膜ROM。有两种加密的机制,一是彻底破坏读取代码的功能,无论是开发者还是使用者都永远无法读取其中的内容。从安全上来说,这种方式很彻底 ,但是已经无法检查ROM中的代码了。另一种方法是不公开读取方法,厂商仍可以读取代码。这种方式留有检查代码的可能性,但是并不能算是一种真正的“加密”,被破解的可能性是存在的。 客观地讲,一方面希望加密很彻底,而另外一方面又希望留有检查代码的可能,这是相互矛盾 的要求。 自Flash技术得到广泛应用以来,各类单片机制造商纷纷采用了多种不同的芯片加密方法,对比掩膜ROM芯片来说,Flash ROM在线可编程特性使得芯片的加密和解密方式变得更加灵活和可靠。在Flash型单片机中,芯片的加密和解密工作都是通过对Flash ROM的编程来完成的,由于用户程序可以在线地改写ROM的内容,可以编写一套加密和解密的小程序,随用户程序下载到芯片中,通过运行该程序,在线修改Flash ROM的内容,对芯片进行加密和解密,使整个的加解密过程更为简单灵活。 Freescale公司的HCS12单片机采用的加解密思路有一定的典型性,我们对此作了一些研究,现以MC9S12DP256单片机为例,介绍Flash型单片机的加密解密方法。 BDM Freescale公司的很多单片机都借用一种被称为后台调试模式(Background Debug Mode,BDM)作为下载和调试程序的接口。 BDM是一种单线调试模式,芯片通过一个引脚与编程器进行通信。在HCS12系列单片机中,内部都置有标准的BDM调试模块。该模块的有三种作用: 1) 对内部存储器的读写。将用户程序下载到目标芯片中或是将存储器中的数据读出。 2) 对单片机工作方式和资源进行配置。部分涉及到单片机工作方式和资源配置的寄存器只能在特殊模式下由编程器发送BDM命令来修改。 3) 程序调试。利用BDM模块可以读写内存和CPU内部寄存器,调试程序。 在HCS12单片机未加密的状态下,使用BDM硬件命令可以将Flash ROM中的程序读出或将新的程序写入。BDM命令可以由独立的硬件系统来送出,我们一般称此类系统为BDM编程器。 BDM编程器的时序协议是公开的,任何人都可以根据协议设计硬件、编写程序,实现BDM编程器的功能。使用BDM接口,编程器可以很容易的访问到目标系统的存储器,这给程序调试和烧写带来了很大

917618-计算机系统与网络安全技术-标准实验报告(4)-PGP证书的配置和使用

电子科技大学计算机科学与工程学院标准实验报告 (实验)课程名称计算机系统与网络安全技术 电子科技大学教务处制表

电子科技大学 实验报告 学生姓名:学号:指导教师:郑方伟 实验地点:实验时间:4学时 一、实验室名称:信息安全实验室 二、实验项目名称:PGP证书的配置和使用 三、实验学时:4学时 四、实验原理: PGP—Pretty Good Privacy,是一个基于RSA公匙加密体系的邮件加密软件。可以用它对你的邮件保密以防止非授权者阅读,它还能对你的邮件加上数字签名从而使收信人可以确信邮件是你发来的。它让你可以安全地和你从未见过的人们通讯,事先并不需要任何保密的渠道用来传递密匙。它采用了:审慎的密匙管理,一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。而且它的源代码是免费的。 RSA(Rivest-Shamir-Adleman)算法是一种基于大数不可能质因数分解假设的公匙体系。简单地说就是找两个很大的质数,一个公开给世界,一个不告诉任何人。一个称为“公匙”,另一个叫“私匙”(Public key & Secret key or Private key)。这两个密匙是互补的,就是说用公匙加密的密文可以用私匙解密,反过来也一样。假设甲要寄信给乙,他们互相知道对方的公匙。甲就用乙的公匙加密邮件寄出,乙收到后就可以用自己的私匙解密出甲的原文。由于没别人知道乙的私匙所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面由于每个人都知道乙的公匙,他们都可以给乙发信,那么乙就无法确信是不是甲的来信。认证的问题就出现了,这时候数字签名就有用了。 五、实验目的:

信息安全技术实验二

实验二PGP应用 一、实验目的 1. 学会利用PGP工具实现安全通信; 2. 理解安全通信实现过程。 二、实验设备 PC,Windows XP操作系统,虚拟机,GnuPGP。 三、实验内容 1.生成公私密钥 (1)本机单击实验平台“GnuPG”工具按钮,进入工作目录,键入命令:gpg --gen-key开始生成公私钥对。期间gpg会依次询问如下信息: ●欲产生密钥种类(默认选择1) ●密钥大小(默认大小2048字节) ●密钥有效期限(默认选择0—永不过期) (2)生成用户标识,期间gpg会依次询问如下信息: ●Real name(用户名,请按本机的组编号和主机编号确定你的用户名) ●Email address(Email地址,如user2D@https://www.doczj.com/doc/3e16064570.html,lab) ●Common(注释信息,建议与用户名相同) 确定上述输入后,gpg会提示你将要生成的USER-ID。 键入“O”确定以上信息后,gpg需要一个密码来保护即将生成的用户私钥,为了方便记忆,我们选择密码与用户名相同。 (3)接下来gpg会根据以上信息生成公私密钥对,并将它们存放在C:\Documents and Settings\Administrator\Application Data\gnupg目录下,名字分别为:pubring.gpg和secring.gpg。 2.导出公钥 本机在gpg工作目录键入命令: gpg -a -o D:\Work\PGP\userGXpubkey.asc --export userGX (userGX) (userGX@https://www.doczj.com/doc/3e16064570.html,lab),gpg会将公钥导入到D:\Work\PGP\这个指定目录

网络安全技术实验报告实验5PGP加密软件应用

XX大学 本科实验报告 课程名称:网络安全技术 1421351 学号: XXX 姓名: 网络工程专业: 班级:网络B14-2 指导教师: 课内实验目录及成绩 信息技术学院 2017年10 月20 日

XX大学实验报告 课程名称:计算机信息安全实验类型:演示、验证 实验项目名称:实验五PGP加密软件应用 实验地点:信息楼320 实验日期:2017 年10 月20 日 实验五PGP加密应用实验 PGP (Pretty Good Privacy) 是一个基于RSA公开密钥体制的邮件加密软件。其可对用户邮件内容保密,以防止非法授权者阅读。它能对用户的电子邮件加上数字签名和密钥认证管理功能,从而使得收信人可以确信邮件是由真正的用户发来的。它的功能强大,而且源代码是免费的。例如,当用户Alice 要传送一封保密信或档案给用户Bob 时,必须先取得用户Bob 的公钥,并且将它加入用户Alice 的公钥项中,然后使用Bob 的公钥将信件加密。当用户Bob 收到用户Alice 加密的信件后,用户Bob 必须利用其相对的私钥(Secret Key) 来解密。除非其它用户拥有用户Bob 的私钥,否则无法解开用户Alice 所加密的信件。同时,用户Bob 在使用私钥解密时,还必须输入通行码,如此又对加密后的信息多了一层保护。 1. 实验目的与要求 通过PGP软件的使用,进一步加深对非对称密码算法RSA的认识和掌握,熟悉软件的操作及主要功能,使用它加密邮件、普通文件。 2.实验方法 实验环境与设备:网络实验室,每组必备两台装有Windows 操作系统的PC机。 实验用时:2学时(90-100分钟) 3. 实验内容及步骤 (1)实验内容 A机上用户(pgp_user)传送一封保密信给B机上用户(pgp_user1)。首先pgp_user对这封信用自己的私钥签名,再利用pgp_user1公钥加密后发给pgp_user1。当pgp_user1收到pgp_user 加密的信件后,使用其相对的私钥(Secret Key) 来解密。再用pgp_user的公钥进行身份验证。 (2)实验步骤 两台PC机上分别安装PGP软件。实验步骤: 1)运行安装文件pgp8.exe,出现初始安装提示对话框。 2)单击按钮,出现选择用户类型对话框。首次安装,选择No,I’m a New User。 3)单击按钮,之后不需改动默认设置,直至出现安装结束提示。 4)单击按钮,结束安装并启动计算机,安装过程结束。 以pgp_user用户为例,生成密钥对、获得对方公钥和签名。实验步骤: 1)第1步:重启软件。单击<开始>按钮,选择“所有程序”→ “PGP”→ “pgpkeys”。

实验二--PGP加密实验

实验二 PGP加密实验 一、实验目的: 1.熟悉非对称加密算法。 2.掌握私钥和公钥再签名和加密中的应用。 3.了解PGP工具如何实现数据的完整性和性 二、实验环境 计算机、PGP工具、局域网或互联网 三、实验原理 PGP简介: PGP软件是一款非常优秀的加密软件。它能实现对文件、、磁盘、以及ICQ通信容实现加密、解密、数字签名的功能,适合企业、政府机构、卫生保健部门、教育部门、家庭个人进行安全通信使用。 PGP的加密是采用了RSA以及杂合传统的加密算法来实现加密的。加密的关键在于一对密钥,该密钥对包含一个公钥以及一个私钥。公钥和私钥是根据某种数学函数生成的,并且通过一个密钥来推测另外一个密钥几乎是不可能的。其中,明文可以用公钥来加密,然后用私钥解密得到原文,明文也可以用私钥加密,然后用公钥解密得到原文。并且,一般来说,公钥用于加密,私钥用于数字签名。而且公钥是发给别人用来加密要发送给自己的文件的,而私钥是自己保留个人使用,不能供别人使用的。需要注意的是,明文通过用户A的公钥加密后,只能使用用户A的私钥解密,不能采用A以外的任何其他人的私钥解密;使用用户A 的私钥加密的文件只能用A的公钥解密,不能使用A以外的任何其他人的公钥解密。由于私钥是自己保留,不给别人知道,因此,私钥除了加密的功能之外,还可以具有数字签名的作用。其机制在于:私钥只有自己才有,别人是没有你的私钥的,你用私钥可以对文件进行签名,而别人由于没有你的私钥,无法进行同样的签名,这样就能证明该文件是从你这里发出去的。而公钥是提供给要和你安全通信的人使用的。例如A想要和你通信,但是希望同新的容不要被别人看到,就可以用你的公钥来对发送的容进行加密,而你收到A发来的信息后就可以用你的私钥解密,可以阅读文件的容。假设A发送的容在途中被人截获了,但是没有你的私钥的话,一样是看不到明文的。这样PGP就能实现加密以及数字签名的功能。PGP之所以流行的原因是,加密的安全性非常高,同时加密速度又很快。 四、实验步骤 步骤1 PGP安装 下载软件后,运行pgp8.exe文件开始安装,安装的过程很简单,依次按“next”按钮就可以了,安装过程见图1、图2、图3、图4和图5。

AES加密解密实验报告

信息安全工程课程 实验报告 AES加密解密的实现 课程名称:信息安全工程 学生姓名:黄小菲 学生学号: 3112041006 专业班级:系统工程2038班 任课教师:蔡忠闽 2012年11月22日

目录 1.背景 (1) 1.1 Rijndael密码的设计标准: (1) 1.2 设计思想 (1) 2.系统设计 (2) 2.1系统主要目标 (2) 2.2功能模块与系统结构 (2) 2.2.1字节替换SubByte (2) 2.2.2行移位ShiftRow (2) 2.2.3 列混合MixColumn (3) 2.2.4 轮密钥加AddRoundKey (4) 2.2.5 逆字节替换 (4) 2.2.6逆行移位InvShiftRow (4) 2.2.7 逆列混淆 (4) 3 加密模式 (5) 3.1 电子密码本ECB模式 (5) 3.2加密块链模式CBC模式 (6) 4 系统功能程序设计 (8) 4.1基本加密部分 (8) 4.1.1字节替换 (8) 4.1.2行移位 (8) 4.1.3列混合 (9) 4.1.4轮密钥加 (9) 4.1.5密钥扩展 (10) 4.1.6逆字节替换 (11) 4.1.7逆行移位 (11) 4.1.8逆列混合 (12) 4.1.9加密 (12) 4.1.10解密 (13) 5 实验结果 (14) 5.1 需要加密文件 (14) 5.2 实验加密解密结果 (15) 6 参考资料 (16)

1.背景 AES,密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。AES 有一个固定的128位的块大小和128,192或256位大小的密钥大小。Rijndael算法汇聚了安全性、效率高、易实现性和灵活性等优点,是一种较DES更好的算法。 该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿高级加密标准的甄选流程。(Rijdael的发音近于"Rhine doll"。)AES在软体及硬件上都能快速地加解密,相对来说较易于实作,且只需要很少的记忆体。作为一个新的加密标准,目前正被部署应用到更广大的范围. 1.1 Rijndael密码的设计标准: ①抵抗所有已知的攻击。 ②在多个平台上速度快,编码紧凑。 ③设计简单。 当前的大多数分组密码,其轮函数是Feistel结构。 Rijndael没有这种结构。 Rijndael轮函数是由3个不同的可逆均匀变换 1.2 设计思想 ?分组和密钥长度可变,各自可独立指定为128、192、256比特。 ?状态 ?算法中间的结果也需要分组,称之为状态,状态可以用以字节为元素的矩阵 阵列表示,该阵列有4行,列数N b为分组长度除32 ?种子密钥 ?以字节为元素的矩阵阵列描述,阵列为4行,列数N k为密钥长度除32

加密技术及密码破解实验报告

第九章、实验报告 实验一、设置Windows启动密码 一、实验目的:利用Windows启动密码保存重要文件。 二、实验步骤: 1、在Windows XP系统中选择开始——运行,在打开输入框中“syskey.exe”,点击确定,打开“保证Windows XP账户数据库的安全”对话框。 2、单击【更新】,打开【启动密码】对话框,然后输入密码,在【确认】文本框中再次输入密码,单击【确定】

实验二、为word文档加密解密 一、实验目的:保护数据的安全 二、实验步骤: 1、打开一个需要加密的文档,选择【工具】——【选项】——【安全性】然后输入想要设置打开文件时所需的密码 2、单击【高级(A)】打开加密类型对话框,选中【加密文档属性】复选框,单击【确定】。

3、打开文件的【确认密码】对话框,输入打开文件时需要的密码,单击【确定】,随即打开【确认密码】对话框,输入密码。 4、保存文件后,重新打开Word文档,打开【密码】,输入打开文件所需的密码,单击【确定】输入修改的密码,单击【确定】 破解word密码 (1)安装Advanced Office Password Recovery软件,安装完成后打开需要破解的word 文档,进行暴力破解,结果如图所示: 实验三、使用WinRAR加密解密文件

一.实验目的:加密文件,保证文件的安全性。 二.实验步骤: 1、在需要加密的文件夹上右击,选中【添加到压缩文件】打开【压缩文件名和参数】 2、选中【压缩文件格式】组合框中的【RAR】并在【压缩选项】中选中【压缩后删除源文件】然后切换到【高级】,输入密码,确认密码。 3、关闭对话框,单击确定,压缩完成后,双击压缩文件,系统打开【输入密码对话框】 破解WinRAR加密的文件 (1)安装Advanced RAR Password Recovery软件,打开WinRAR加密文件,进行暴力破解,获得密码。结果如图:

PGP加密系统的使用课程实训报告

课程实训报告课程名称:网络安全的实现与管理实训 实训题目: PGP加密系统的使用 专业:计算机应用技术班级: 07级网络班学生姓名:学号: 指导教师:职称: 部门: 起止日期: 教务处制

目录 一、PGP介绍 (3) 1.1 PGP的概念 (3) 1.2 PGP的用途 (4) 1.2.1 PGP的功能 (4) 1.2.2 PGP的加密、解密方法以及PGP的密钥管理机制 (4) 1.3 PGP技术原理 (4) 二、PGP软件包的安装 (5) 三、PGP 密钥的生成和管理 (7) 3.1 密钥对的生成 (7) 3.2 密钥的导出和导入 (10) 3.3 密钥的管理 (10) 四、文件的加密、签名和解密、验证签名 (13) 4.1 加密和解密 (13) 4.2 签名和验证 (14) 4.3 加密&签名 (15) 五、邮件的加密、签名和解密、验证签名 (16) 5.1 加密&签名 (16) 5.3 解密&验证签名 (17) 六、使用 PGP 构建加密磁盘 (18) 6.1 创建加密磁盘 (18) 6.2加载加密磁盘 (20) 6.3 卸载加密磁盘 (21) 七、实训建议、意见、体会 (22) 八、附录或参考资料 (22)

一、PGP介绍 1.1 PGP的概念 PGP-Pretty Good Privacy是一个基于RSA公匙加密体系的邮件加密软件。可以用它对你的邮件保密以防止非授权者阅读,可以用它对你的邮件保密以防止非授权者阅读,可以用它对你的邮件保密以防止非授权者阅读,它让你可以安全地和你从未见过的人们通讯,事先并不需要任何保密的渠道用来传递密匙。它采用了:审慎的密匙管理,一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。而且它的源代码是免费的。 1.2 PGP的用途 PGP 能够提供独立计算机上的信息保护功能,使得这个保密系统更加完备。它提供了这些功能:数据加密,包括电子邮件、任何储存起来的文件、还有即时通讯(例如 ICQ 之类)。数据加密功能让使用者可以保护他们发送的信息─像是电子邮件─还有他们储存在计算机上的信息。文件和信息通过使用者的密钥,通过复杂的算法运算后编码,只有它们的接收人才能把这些文件和信息解码。 1.2.1 PGP的功能 PGP使用加密以及效验的方式,提供了多种的功能和工具,帮助您保证您的电子邮件、文件、磁盘、以及网络通讯的安全。您可以使用 PGP 做这些事: 1、在任何软件中进行加密/签名以及解密/效验。通过 PGP 选项和电子邮件插件,您可以在任何软件当中使用 PGP 的功能。 2、创建以及管理密钥。使用 PGPkeys 来创建、查看、和维护您自己的 PGP 密钥对;以及把任何人的公钥加入您的公钥库中。 3、创建自解密压缩文档 (self-decrypting archives, SDA)。您可以建立一个自动解密的可执行文件。任何人不需要事先安装 PGP ,只要得知该文件的加密密码,就可以把这个文件解密。这个功能尤其在需要把文件发送给没有安装 PGP 的人时特别好用。并且,此功能还能对内嵌其中的文件进行压缩,压缩率与ZIP相似,比RAR 略低(某些时候略高,比如含有大量文本)。总的来说,该功能是相当出色的。 4、创建PGPdisk加密文件。该功能可以创建一个.pgd的文件,此文件用PGP D isk功能加载后,将以新分区的形式出现,您可以在此分区内放入需要保密的任何文件。其使用私钥和密码两者共用的方式保存加密数据,保密性坚不可摧,但需要注意的是,一定要在重装系统前记得备份“我的文档”中的“PGP”文件夹里的所有文件,以备重装后恢复您的私钥。切记切记,否则将永远没有可能再次打开曾经在该系统下创建的任何加密文件! 5、永久的粉碎销毁文件、文件夹,并释放出磁盘空间。您可以使用PGP粉碎工具来永久地删除那些敏感的文件和文件夹,而不会遗留任何的数据片段在硬盘上。您也可以使用PGP自由空间粉碎器来再次清除已经被删除的文件实际占用的硬盘空间。这两个工具都是要确保您所删除的数据将永远不可能被别有用心的人恢复。 6、9.x新增:全盘加密,也称完整磁盘加密。该功能可将您的整个硬盘上所有数据加密,甚至包括操作系统本身。提供极高的安全性,没有密码之人绝无可能使用您的系统或查看硬盘里面存放的文件、文件夹等数据。即便是硬盘被拆卸到另外的计

PGP加密软件实验报告

南京信息工程大学实验(实习)报告 实验(实习)名称PGP加密软件实验报告实验日期:2015.6.16得分指导老师朱节中系计算机专业网络工程班次 1 姓名学号 一、实验目的 (1)掌握在WINDOWS下安装和使用PGP软件 (2)保证电子邮件的安全传送 (3)掌握对称、非对称、HASH加密的原理 二、实验内容 (1)配置Outlook Express程序 (2)安装WINDOWS下的PGP软件 (3)运行PGP并创建密钥对 (4)用PGP加密电子邮件 (5)用PGP解密已经加密的电子邮件 三、实验步骤 1、软件安装 图1 新用户需要创建并设置一个新的用户信息。继续点“NEXT”按钮,来到了程序的安装目录,再次点“NEXT”按钮,出现选择PGP组件的窗口。

图2 2、创建和设置初始用户 处输入想要创建的用户名如图3: 图3 完成后点“下一步”按钮。如图4: 图4

点“完成”按钮,用户就创建并设置好了。 3、导出并分发你的公钥 启动PGPkeys,如图5: 图5 4、导入并设置其他人的公钥 导入公钥如图6: 图6 设置公钥属性:接下来打开PGPkeys,就能在密钥列表里看到刚才导入的密钥,如图7:

图7 文本输出:解密后以文本形式输出。 输入文本:选择此项,解密时将以另存为文本输入方式进行加密。 粉碎原件:加密后粉碎掉原来的文件,不可恢复。 常规加密:输入密码后进行常规加密,有点局限性。 "自解密文档":继承于“常规加密”,此方式也经常使用到,通常加密目录下的所有文件。 三、实验结果及分析 1、生成密钥对,如图8所示: 图8 2、导出公钥,如图9所示:

DES加密与解密C实现+实验报告

DES加密与解密算法 课程名称:工程实践 学生姓名: xxxx 学生学号: xxxx 专业班级: xxxx 任课教师: xxxx 论文提交日期: xxxx

DES加密与解密算法 摘要 本世纪五十年代以来,密码学研究领域出现了最具代表性的两大成就。其中之一就是1971年美国学者塔奇曼(Tuchman)和麦耶(Meyer)根据信息论创始人香农(Shannon)提出的“多重加密有效性理论”创立的,后于1977年由美国国家标准局颁布的数据加密标准。 DES密码实际上是Lucifer密码的进一步发展。它是一种采用传统加密方法的区组密码。它的算法是对称的,既可用于加密又可用于解密。 1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES枣Data Encryption Standard)。 目前在这里,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。 关键词:DES算法,加密,解密

Abstract This century since fifty time, cryptography research field is the most representative of the two Achievement. One was the 1971 USA scholar Tuchman (Tuchman) and Meyer (Meyer) based on information theory founder Shannon (Shannon) proposed "multiple encryption effectiveness theory" was founded, in 1977 after the National Bureau of standards promulgated by the America data encryption standard.The DES password is actually a further development of the Lucifer password. It is a traditional encryption method of block cipher. The algorithm is symmetric, which can be used for encryption and decryption can be used. In 1977 January, the government promulgated American: adopted IBM design as a non official data confidential data encryption standard (DES - Data Encryption Standard). At present here, along with three gold project especially golden card project startup, DES algorithm in POS, ATM, magnetic card and intelligent card (IC card), gas station, highway toll station and other fields are widely used, so as to realize the security of key data encryption transmission, such as credit card holders PIN, IC card and POS mutual authentication, financial transaction data package of MAC check and so on, are used in DES algorithm. Keywords: DES algorithm, encryption, decryption

asp加密文件解密破解方法

asp加密文件解密破解方法 asp加密文件解密破解方法 asp加密文件解密破解方 网上有很多好的程序,但为了商业用途,有一些asp程序的文件是加密了的,如果他加密的方式不是很麻烦的话,那么是可以解密的。目前网上使用较多而且方便的加密就是脚本编码器(SRCENC.EXE)加密,这种加密方法破解比较容易,在文章的尾部有破解方法。本人尝试使用这种方法成功破解。 目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密、组件加密、自编程序加密,下面我们就来展开介绍这三种加密方法…… 如今,用ASP技术构建的网站随处可见。由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题,网上求解这类问题的帖子非常多,下面我们就来谈谈ASP程序的加密方法。 一、如何加密ASP程序? 目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密、组件加密、自编程序加密,下面我们就来展开介绍这三种加密方法。 1、使用微软的MS Script Encode进行加密 微软提供了脚本编码器MS Script Encode(sce10chs.exe下载地址点击下载sce10chs.exe),可以对ASP程序进行加密。这是一个简单的命令行工具,其执行文件是SRCENC.EXE,需要在DOS下运行。它只加密页面中嵌入的脚本代码,把网页中之间的ASP代码转换成不可读的乱码,其他部分则保持原样不变。加密后的程序,必须使用Internet Explorer 5.0以上版本才能正常浏览。 用SRCENC加密之后,文件中被加密过的部分将变成只读类型,假如你修改了加密部分(哪怕只改动一个字),就会导致整个文件不能使用。对于VBScript,加密后在源文件的第一行会显示: