一种基于MD5和Base64的简单算法

一、介绍

这是一次信息系统防护课程的作业,老师是邹海涛老师。要求是自己设计一个加密算法,我们小组设计的算法如下。

二、背景知识

(1)算法的提出

        在信息系统防护的课程上,讲了MD5加密算法,MD5是计算机安全领域广泛使用的一种散列函数,可以产生信息摘要,可以提供消息的完整性保护,同时MD5也是不可逆的单向加密算法。MD5用来进行文件校验的方案大量用于软件下载站、论坛数据库、系统文件安全等方面。

        然而,随着快速MD5碰撞生成器的产生,单纯的MD5其实并不可靠。

        因此,我们组设计出一种将MD5产生的摘要做二次处理,以增强安全性形成新的算法,解决了单纯MD5加密易被破解的问题。

        设计并没有就此结束。在加密的最后阶段,明文与最终的密码表之间如果用简单的数值对应实则不够安全。在这里,我们再次设计了一个类似于Base64的加密算法。Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,是二进制到字符的过程,可用于在HTTP环境下传递较长的信息标识。

        准确的说,我们参考Base64设计的加密方式严格来讲并不是一种真正的加密算法,而是一种改进版的更具安全性的自定义的对应法则,这也加强了安全性。

(2)关于MD5

        MD5算法的全名是Message DigestAlgorithm MD5,中文名为消息摘要算法第五版。是为计算机安全领域广泛使用的一种散列函数,用以提高消息的完整性保护。MD5是MD4算法的增

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MD5计算的结果是一个128位(16字节)的散列值,而Base64是一种基于64个可打印字符来表示二进制数据的编码方法。这两者之间是不同的概念。MD5是一种信息摘要算法,用于确保信息传输的完整性和一致性,而Base64是一种编码方式,用于将二进制数据转换成可打印字符的文本数据。 如果你想对一个字符串进行MD5计算,并将计算结果以Base64编码的形式表示,你可以先对字符串进行MD5计算,然后将计算结果转换成Base64编码。具体步骤如下: 1. 使用MD5算法对字符串进行计算,得到一个128位的散列值。 2. 将散列值转换成二进制形式。 3. 将二进制数据按照每6比特(2的6次方=64)进行分组,并计算每组的十进制值。 4. 根据十进制值在Base64编码索引表中找到对应的字符。 5. 将得到的字符拼接起来,即为Base64编码结果。 需要注意的是,Base64编码通常用等号(=)字符来替换最后的A,作为结束符号。在Base64解码时遇到等号时,即可知道一个Base64编码字符串的结束。 所以,如果你想对一个字符串进行MD5计算,并将计算结果以Base64编码的形式表示,可以先对字符串进行MD5计算,然后将计算结果转换成Base64编码。 #### 引用[.reference_title] - *1* *2* *3* [C++实战md5、base64算法实现](https://blog.csdn.net/weixin_44834554/article/details/127074397)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值