文件加密算法有哪些(摘要算法)

Posted

篇首语:我们一路走,一路被辜负,一路点燃希望,一路寻找答案。本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件加密算法有哪些(摘要算法)相关的知识,希望对你有一定的参考价值。

文件加密算法有哪些(摘要算法)

摘要算法是一种散列函数,它将任意长度的输入数据映射为固定长度的输出数据,称为摘要。摘要算法通常用于文件完整性验证、密码存储、数字签名等领域,因为任何对数据的修改都会导致摘要的改变。

散列填充:


常用的摘要算法有:

  1. MD5:消息摘要算法5 (Message-Digest Algorithm 5, MD5)是一种广泛使用的加密哈希函数,它从任意长度的输入生成128位(16字节)哈希值。它是由Ron Rivest教授在1991年设计的。

MD5输出一个固定长度的哈希值,该值对于输入数据是唯一的。该算法将任意长度的消息作为输入,并生成输入的128位“指纹”或“消息摘要”,通常表示为32位16进制数。然而,由于其设计,MD5很容易受到碰撞攻击(collision attacks),这意味着有可能找到产生相同哈希值的两个不同输入。因此,MD5不再被认为是敏感应用程序的安全哈希函数,并在很大程度上被更安全的算法所取代,如SHA-256或SHA-3。

下面是如何使用MD5的示例: 假设您想验证下载文件的完整性,并且该文件带有MD5校验和。要验证文件的完整性,可以计算下载文件的MD5哈希值,并将其与提供的校验和进行比较。如果两个值匹配,则确认文件的完整性。下面是一个Python代码示例:

在这个例子中,' md5函数将文件的路径作为输入,以4096字节的块读取文件,并使用每个块更新哈希值。最终的哈希值以十六进制字符串的形式返回。然后使用计算散列与提供的校验和之间的比较来确认文件的完整性。

2. SHA:安全散列算法(Secure Hash Algorithm),是一种常用的哈希算法,包括SHA-1、SHA-224、SHA-256、SHA-384和SHA-512等多种版本。

例如SHA-256(安全哈希算法256-bit)从任意长度的输入生成256位(32字节)哈希值,该值对于输入数据是唯一的。它是由美国国家安全局(NSA)在2001年设计的。该算法将任意长度的消息作为输入,并生成输入的256位“指纹”或“消息摘要”,通常表示为64位十六进制数。与MD5不同,SHA-256不容易受到碰撞攻击,被认为是敏感应用程序的安全哈希函数。请注意,虽然SHA-256比MD5更安全,但它也更慢,计算量更大,因此它可能不适合某些需要关注性能的应用程序。

下面是一个Python代码示例:

3. HMAC:散列消息认证码(Hash-based Message Authentication Code),HMAC背后的主要思想是使用散列函数(如SHA-256或MD5)与秘密密钥(对称,无公钥)结合使用,为消息提供完整性和真实性保证。

当发送消息时,发送方使用秘密密钥和哈希函数计算消息的HMAC值,并同时发送消息和HMAC值。当接收方收到消息和HMAC值时,可以通过重新计算HMAC值并将其与收到的HMAC值进行比较来验证消息的完整性和真实性。

下面是一个Python代码示例:

在这个例子中,'hmac_sha256’函数将一个' key '和一个' message '作为输入,并使用SHA-256哈希函数返回消息的HMAC值。'hmac.new'函数用于创建一个HMAC对象,该对象可用于计算HMAC值。hexdigest方法以十六进制字符串的形式返回HMAC值该示例展示了如何使用HMAC值来确认消息的完整性。当发送消息时,发送方使用共享密钥和消息计算HMAC值。接收方然后使用接收到的消息和共享密钥重新计算HMAC值,并将其与接收到的HMAC值进行比较。如果两个值匹配,则消息未被篡改,其完整性已得到确认。

缺点:

  • 首先计算初始消息的消息摘要,然后用对称密钥加密,只有发送方和接收方知道这个密钥,存在密钥交换问题。
  • 接收方是如何知道消息来自发送方,而不是来自其他的接收方。所有接收方都知道这个对称密钥,因此很可能以发送方的身份发一个假消息,用HMAC准备这个消息的MAC,发送消息和MAC,就像合法的发送方一样,这是无法阻止和检测的。

4. RIPEMD:可靠消息摘要算法(RACE Integrity Primitives Evaluation Message Digest),是一种常用的哈希算法,输出的摘要长度为160位。

相关参考

数显压差阀(易冲半导体E-Marker自带温升保护,独有的加密算法,保护线材安全)

前言PD协议的普及以及欧盟通过统便携智能设备充电接口的法案,必将促使USB-C线缆朝高功率应用发展,随之而来也面临着安全保护方案急需进一步升级。快充输出电压由最初9V,12V上升到PD3.020V,而随着PD3.1的发布,新的EPR规范...

构建系统发生树的基本算法(这份分类决策树算法介绍请收好)

摘要:决策树在机器学习算法中是一个相对简单的算法,如何不能进行适当的剪枝就容易造成模型的过拟合。决策树算法也是当前很多集成学习算法的基础,集成算法的效果往往比单独使用决策树算法效果更好。关键词:决策树...

构建算法模型(AI算法模型之应用部署概述)

...ensorflow等深度学习框架进行训练算法模型,得到模型权重文件,模型训练部分今天不着重介绍,后续专题会展开讨论训练tricks、模型调优、模型剪枝、蒸

有关网络的论文(Arxiv网络科学论文摘要10篇(2022-10-07))

...图数据集生成框架;具有高阶结构的图混合模式;香农熵:加密货币投资组合的经济物理学方法;社区作为模糊算子:社区检测算法的关键启发式的认识论问题;揭示图对比学习中的结构公平性;三态意见模型的均衡与动态;单细胞数据...

彩色眼膜(基于高光谱成像技术的字迹鉴定检测算法和实验研究)

...相同的颜色。中性笔墨水稳定,字迹不褪色。很多重要的文件都是用中性笔写的,比如合同、收据、证书、支票等文件。

怎么发加密(聊天可以加密吗?)

聊天可以加密吗?怎么加密聊天?哪个加密方式安全?随着大数据时代的到来,网络带来的便利性的同时,伴随着个人隐私泄露的问题也日渐凸显出来。大家也开始注重提高个人隐私信息保护意识了。聊天是可以加密的。现在的...

按键铭板(全自动打靶机系统,视觉对位算法精度高操作简单)

...算法;手动快捷示教,操作简单;支持CAD(DXF格式)、CSV文件等自动

怎样加密wifi密码(如何为数据库选择最佳加密方法)

译者|李睿加密是对消息或信息进行安全编码的过程,只有授权方才能看到加密数据。加密的历史距今长达几个世纪。比如在第二次世界大战中,美军使用纳瓦霍语发送加密指令,使日军无法有效解码。如今,加密更加重要,因...

怎么在电脑上写日记并加密(用户密码到底要怎么加密存储?)

...原因是一些企业发生了信息泄露事件,且这些泄露数据未加密或者加密方式比较弱,导致黑客可以还原出原始的用户密码。目前已经曝光的信息泄露事件至少上百起,其中包括多家一线互联网公司,泄露总数据超过10亿条。要完...

怎么看加密狗是哪个软件的(康耐视软件,康耐视加密狗详细分类)

康耐视加密狗以软件,以工具功能为分类:visionpro(本文暂不讨论10.0版本加密狗),其中visionpro加密狗中开头带-CD,支持designer,也支持开发。主要以CD-VM-WB与CD-VM-3D-WB市面使用量最多。(两者区别带-3D,支持visionpro3D工具)其中vision...