koorio.com
海量文库 文档专家
当前位置:首页 >> 计算机软件及应用 >>

云南大学 信息安全技术 实验一 Base64


云南大学软件学院
实验
课程名称 实验目的 1. 2. 3. 信息安全技术


实验项目


Base 64 加解密

实现 Base64 的实现算法。 使用实现的算法对数据进行加密 使用实现的算法对加密的文件进行解密

一、实验原理: 1.Base64 简介: Base64 是网络上最常见的用于传输 8Bit 字节代码的编码方式之一, 可用于在 HTTP 环境下传 递较长的标识信息。采用 Base64 编码不仅比较简短,同时也具有不可读性,即所编码的数据 不会被人用肉眼所直接看到。能有效的保护传输信息。 2.编码的规则: Base64 编码要求把 3 个 8 位字节(3*8=24)转化为 4 个 6 位的字节(4*6=24) ,之后在 6 位 的前面补两个 0,形成 8 位一个字节的形式。 如果需要被编码数据的剩余部分不足 24 位, 则要执行特殊的操作。 编码量通常在主体 (body) 结尾部分结束。当输入少于 24 位时,会在末尾(右侧)添加一些值为 0 的位,以形成完整的 6 位组。用“=”来表示数据结尾的填充。因为所有 base64 的输入都是完整的字节,所以只可能出 现如下情况: (1)最后的编码输入是完整的 24 位;这时,编码输出的最后一个单元会是完整的 4 个不为“=” 的个字符。(2)最后的输入是 8 位;这时,编码输出的最后一个单元是两个编码字符后接两个 填充字符“=”。(3)最后的输入刚好是 16 位;这时,编码输出的最后一个单元是三个编码字符 后接一个填充字符“=”。因为“=”是用来填充数据的结尾部分,所以,它的出现意味着可能已经 到达数据末尾(但不切断传输)。然而,也可能无法以这种方式进行判断:当传输的字节个数是 三的整数倍时,编码中就不会出现“=”。在 base64 编码数据中,要忽略任何不属于 base64 字 母表的字符。 具体步骤: (1)把 3 个字符变成 4 个字符; (2)每 76 个字符加一个换行符; (3)最后的结束符也要处理 3.Base64 索引表: Value Char 0 1 2 3 A B C D Value Char 16 17 18 19 Q R S T Value Char 32 33 34 35 g h i j Value Char 48 49 50 51 w x y z

实验内容 (算法、 程序、步 骤和方 法)

4 5 6 7 8 9 10 11 12 13 14 15

E F G H I J K L M N O P

20 21 22 23 24 25 26 27 28 29 30 31

U V W X Y Z a b c d e f

36 37 38 39 40 41 42 43 44 45 46 47

k l m n o p q r s t u v

52 53 54 55 56 57 58 59 60 61 62 63

0 1 2 3 4 5 6 7 8 9 + /

二、实验 内容: 1. 实现 Base64 的实现算法。 2. 使用实现的算法对数据进行加密 3. 使用实现的算法对加密的文件进行解密三、详细步骤: 三、实验步骤 1 .Base64 的实验流程图
开始

输入文件路径与文件名 选择加解密操作 正确 不正确 是否为正确路径 与文件名 加密 解密

文件读取 Base64算法加密 Base64算法解密

结束

按照路径输出文件

2.Base64 的算法实现 #include <stdio.h> typedef unsigned char uint8_t; typedef unsigned short uint16_t; // 索引范围:0~63,根据索引值从以下字符串中找到编码 char *Base64Code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; // 从 data 获取每个 8 位的原文,前后两个为一组计算得到各自的索引, // 用来找 base64 编码,结果保存到 buffer void encode_base64(uint8_t *buffer, uint8_t *data, uint16_tlen) { uint8_t *bp = buffer; // 保存最新编码的位置 uint8_t *p = data; // 原文 uint8_tc1, c2; // 从原文里得到前后两个数据为一组求索引 while (p < data + len) { c1 = *p++; // 若 c1 == 1010 1101 *bp++ = Base64Code[(c1>> 2)]; // 'r' == Base64Code[43] c1 = (c1&0x03) << 4; // c1 == 0001 0000 if (p >= data + len) { // p 已经到 data 末尾,后面没有数据了 *bp++ = Base64Code[c1]; // 后面没有 c2 可以连接,直接由 c1 查表 break; // 退出编码 } c2 = *p++; // 若 c2 == 1011 1010 c1 |= (c2>> 4) &0x0f; // c1 == 0001 1011 *bp++ = Base64Code[c1]; // 'b' == Base64Code[27] c1 = (c2&0x0f) << 2; // c1 == 00 1010 00 if (p >= data + len) { // p 已经到 data 末尾,后面没有数据了 *bp++ = Base64Code[c1]; // 后面没有 c2 可以连接,直接由 c1 查表 break; // 退出编码 } c2 = *p++; // 若后面还有数据,而且赋值给,令 c2 == 01 11 0110 c1 |= (c2>> 6) &0x03; // c1 == 00 1010 01 *bp++ = Base64Code[c1]; // 'p' == Base64Code[41] *bp++ = Base64Code[c2&0x3f]; // c2&0x3f == 00 11 0110 , // '2' == Base64Code[54] } *bp = '\0'; } int main() { uint8_t buffer[5]; uint8_t data[3] = {0xAD,0xBA,0x76}; // 原文例子 encode_base64(buffer,data,3); printf("%s",buffer); // 编码结果

return 1; } 1. 加解密操作界面 (1) 加密

数据记录 和计算

(2)解密

本次试验收获:了解 Base64 的基本原理与实现方法,对于 base64 的算法我有一下体会: 如果需要被编码数据的剩余部分不足 24 位, 则要执行特殊的操作。 编码量通常在主体 (body) 结尾部分结束。当输入少于 24 位时,会在末尾(右侧)添加一些值为 0 的位,以形成完整的 6 位组。用“=”来表示数据结尾的填充。因为所有 base64 的输入都是完整的字节,所以只可能出 现如下情况: (1)最后的编码输入是完整的 24 位;这时,编码输出的最后一个单元会是完整的 4 个不为“=” 的个字符。(2)最后的输入是 8 位;这时,编码输出的最后一个单元是两个编码字符后接两个 填充字符“=”。(3)最后的输入刚好是 16 位;这时,编码输出的最后一个单元是三个编码字符 后接一个填充字符“=”。因为“=”是用来填充数据的结尾部分,所以,它的出现意味着可能已经 到达数据末尾(但不切断传输)。然而,也可能无法以这种方式进行判断:当传输的字节个数是 三的整数倍时,编码中就不会出现“=”。在 base64 编码数据中,要忽略任何不属于 base64 字 母表的字符。 指导教师签名:

结论 (结果)


推荐相关:

实验一 电子邮件和证书的编码解码技术.doc

云南大学软件学院实 验报告 课程: 姓名: 学号: 专业: 信息安全技术 成绩: 信息安全 实验一 电子邮件和证书的编码解码技术一实验目的 实现基于 Base64 的编码解码...


【云南大学】信息安全技术重点.doc

云南大学信息安全技术重点_工学_高等教育_教育专区。信息安全技术填空、名词、


云南大学软件学院信息安全工程实验6.doc

云南大学软件学院信息安全工程实验6 - 云南大学软件学院 实 课程: 姓名: 学号: 验报 专业: 告 林英 成绩: 信息安全工程实验 任课教师: 实验 6.防火墙实验 ...


信息安全实验报告一.doc

信息安全实验报告一_互联网_IT/计算机_专业资料。...注入和钩子技术实验:QQ安全外挂 32 山东大学 软件 ...base64 class rc4: def __init__(self,public_...


0opsCTF.doc

『第一届 0ops 信息安全技术挑战赛,即 0ops ...0CTF 由上海交通大学网络信息中心和上海市信息安全...('base64').encode('rot13') [解]这个可以直接...


信息安全考试分组实验_图文.doc

天津商业大学信息安全期末实验,天商的不懂的往这看吧! 《信息安全技术》 期末...(4) 主机B单击“使用 base64 编码的 CMC 或 PKCS #10 文件提交 一个证书...


网络安全竞赛策划书.doc

主办,中国海洋大学信息安 全实验室承办的一项关于...日??,技术组检查机器使用情况并保证机器安全关闭,...Eneode,escape(Encoding\base64\uucode\)等各种编码...


天津商业大学信息安全实验五_图文.doc

天津商业大学信息安全实验五_IT认证_资格考试/认证_...用户身份的认证成为一个重要的议题,随着加密技术 的...(4) 主机B单击“使用 base64 编码的 CMC 或 ...


课题29Web传输的安全_图文.ppt

教师大学城个人空间链接 课题 信息 SUBJECT 3 教学...器并申请证书 使用高级证书申请 使用Base64编码证书...Web通信的安全 SSL是PKI技术在Web安全中的一个重要...


证书使用和ssl实验.doc

集美大学计算机工程学院学院实验报告课程名称:计算机信息安全技术 指导教师:高东伟 ...申请页面上,选中“使用 base64 编码的??更新证书申请” ,单击“下 一步”...


ctf指南_图文.ppt

?XDCTF ?由西安电子科技大学信息安全协会组织的CTF...腾讯安全发起、腾讯 安全联合实验室主办,0ops战队和...常规题目 BASE64是一种编码方式,通常用于把 二进制...


第七届网络安全技术大赛策划书.doc

第三届大学信息安全技术大赛选拔赛一、比赛...选前 12 支队伍于 4 月 30 日在实验室 ...- Eneode,escape(Encoding\base64\uucode\)等...


信息技术信息过滤产品安全检验规范.pdf

i GAXXX--2003 信息技术信息过滤产品安全检验规范 1 范围 本规范规定了信息...其它信息过滤功能 邮件信息过滤 应提供对邮件编码(如 base64)的解析能力; 邮件...


网络信息安全综合实验报告.doc

网络信息安全综合实验 任务书一、目的与要求根据实验...各种网络信息安全技术和手段,发现并解决各类安全问题,...[] keyBytes = decryptBASE64(key); // 取得...


信息安全技术与实施-第12讲.doc

信息安全技术实验指导书网络攻防技术专题 实验实验1.实验目的 1.实验...Base64 口令解 码、 Server 7.0/2000 口令解码、 SQL Remote Desktop 口令解码...


蓝盾信息攻防实验室技术白皮书_图文.pdf

蓝盾信息攻防实验室技术白皮书_天文/地理_自然科学_...15 蓝盾信息安全技术股份有限公司 2 一.背景 1.1...? ? ? ? MD5 算法实验 SHA 算法实验 Base64inc...


WEB安全隐患及防御_图文.ppt

网络信息安全技术展会多维防护,实现Web安全全面安全 超越所想 内容总览 1....细致 UTF-8 base64 unicode BIG5 QQ旋风 BT精灵 邮件 共享 酷狗 ……...


网络信息安全技术 2_图文.ppt

网络信息安全技术领域名师蔡皖东教授的课 第二章 网络信息安全威胁一、网络安全...例如 , TFN2K包采用BASE64代码封装, 只包含BASE64字符,并 且TFN2K包中含有重复...


实验1 CA证书与SSL连接.pdf

实验1 CA证书与SSL连接_互联网_IT/计算机_专业资料。信息安全实验 ...选择【Base 64 编码】 ,点击【下载证书】 , 【保存】certnew.cer 文件到桌面...


第6章信息安全,技术,基础_图文.ppt

第6章信息安全,技术,基础_工学_高等教育_教育专区。信息安全技术基础 ...Base64编码 ? Base64编码(RFC 1421)定义了一种“可打印”机制,将 二进制串...

网站首页 | 网站地图
All rights reserved Powered by 酷我资料网 koorio.com
copyright ©right 2014-2019。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com