MD5、SHA、ASE、DES、RSA

MD5、SHA、ASE、DES、RSA

1、MD5算法

MD5信息摘要算法,属于Hash算法。MD5算法对输入任意长度的信息进行运算,产生一个128位的信息摘要(32位的数字字母混合码)。

MD5主要特点:

不可逆,相同数据的MD5值相同,不同数据的MD5值不同

MD5的性质

(1)压缩性:任意长度的数据,算出的MD5值长度都是固定的(超损压缩)

(2)容易计算

(3)抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别

(4)弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

(5)强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。

【注】虽然MD5有不可逆的特点,但是由于某些MD5破解网站,专门用来查询MD5码,其通过把常用的密码先MD5处理,并将数据存储起来,然后跟需要查询的MD5结果匹配,这时就有可能通过匹配的MD5得到明文,所以有些简单的MD5码是反查到加密前原文的。为了让MD5码更加安全,涌现了很多其他方法,如加盐。 盐要足够长足够乱,得到的MD5码就很难查到。

2、SHA算法

SHA256是SHA-2下细分出的一种算法

SHA-2,名称来自于安全散列算法2(Secure Hash Algorithm 2)的缩写,一种密码散列函数算法标准,由美国国家安全局研发,属于SHA算法之一,是SHA-1的后继者。

SHA-2下又可再分为六个不同的算法标准,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。

这些变体除了生成摘要的长度 、循环运行的次数等一些微小差异外,算法的基本结构是一致的。

回到SHA256上,说白了,它就是一个哈希函数。

哈希函数,又称散列算法,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(或哈希值)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。

对于任意长度的消息,SHA256都会产生一个256 bit长的哈希值,称作消息摘要

这个摘要相当于是个长度为32个字节的数组,通常用一个长度为64的十六进制字符串来表示

3、ASE算法

ASE算法不同于MD5、SHA算法,是一种对称的加密算法,其对称性体现在发送信息时需要通过密钥对信息进行加密,接收方收到后,要想获取信息内容,需要用同一个密钥对加密信息进行解密。

ASE算法的三要素:密钥、填充、模式

密钥

密钥是ASE算法实现加密和解密的根本。对称加密算法之所以对称,是因为这类算法对明文(信息)的加密和解密需要使用同一个密钥。

ASE支持三种长度的密钥:128位、192位、256位。

平时大家说的ASE128、ASE192、ASE256,实际上就是对不同长度密钥的使用。
ASE256安全性最高、ASE128性能最好,本质在于它们的加密轮数不同。

填充

ASE算法在对明文加密的时候,并不是把整个明文一股脑的加密成一整段密文,而是把明文拆分成一个个独立的明文块,每一个明文块长度128 bit(16个字节)。
这些明文经过ASE加密器的复杂处理,生成一个个独立的密文块,这些密文块拼接在一起,就是最终的ASE加密结果。

假如一段明文长度是192 bit,如果按每128 bit一个明文块来拆分的话,第二个明文块只有 64bit,不足128 bit,就需要对明文块进行填充。

模式

SE的工作模式,体现在把明文块加密成密文快的处理过程中。ASE加密算法提供了五种不同的工作模式:ECB、CBC、CTR、CFB、OFB

模式之间的主题思想是近似的,在处理细节上有一些差别。这里只介绍各个模式的基本定义

ECB模式(默认):电码本模式 Electronic Codebook Book
CBC模式:密码分组链接模式 Cipher Block Chaining
CTR模式:计算器模式 Counter
CFB模式:密码反馈模式 Cipher FeedBack
OFB模式:输出反馈模式 Output FeedBack
同样的,如果在ASE加密的时候使用了某一种工作模式,解密的时候也必须采用同样的工作模式。

4、DES算法

DES算法是应用最为广泛的对称加密算法。它主要应用在计算机网络通信、电子资金传送系统、保护用户文件,此外,DES还可用于计算机用户识别系统中。

DES是一个分组加密算法,就是将明文分组进行加密,每次按顺序取明文一部分,一个典型的DES以64位为分组,加密解密用算法相同。它的密钥长度为56位,因为每组第8位是用来做奇偶校验,密钥可以是任意56位的数,保密性依赖于密钥。 DES算法的核心主要包括两部分,第一部分是Feistel结构,第二部分是16个子密钥的生成。

DES算法为密码体制中的对称密码体制,⼜被称为美国数据加密标准。DES是⼀个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密⽤的是同⼀个算法。

密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明⽂组和56位的密钥按位替代或交换的⽅法形成密⽂组。

DES加密算法的优点和缺点

优点:简单,容易实现,运行效率高。

缺点:分组比较短、密码生命周期短、容易被暴力解密,密钥难管理,不好分配(密钥交换问题–如何安全的将密钥传输给解密方),无签名认证功能。

5、RSA算法

RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法。

对称密码:加密和解密使用同一种密钥的方式

公钥密码:加密和解密使用不同的密码方式,因此公钥密码通常也称为非对称密码

RSA加密

RSA加密过程可以使用一个通式来表达。
密 文 = 明 文 E m o d N 密文 = 明文^EmodN =EmodN
也就是说RSA加密是对明文的E次方后除以N后求余数的过程。E、N是RSA加密的密钥,也就是说E和N的组合就是公钥,我们用(E,N)来表示公钥。E是加密(Encryption)的首字母,N是数字(Number)的首字母。

RSA解密

RSA的解密同样可以使用一个通式来表达
明 文 = 密 文 D m o d N 明文 = 密文^DmodN =DmodN
也就是说对密文进行D次方后除以N的余数就是明文,这就是RSA的解密过程,知道D和N就能进行解密密文了,所以D和N的组合就是私钥。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Visual Studio .NET VB编程语言 MD5(DES) 8位密钥加密或解密文件function源代码 压缩包 : MD5 skey8位加密(文件).zip 列表 MD5 skey8位加密(文件)/ MD5 skey8位加密(文件)/bin/ MD5 skey8位加密(文件)/Form1.Designer.vb MD5 skey8位加密(文件)/Form1.resx MD5 skey8位加密(文件)/Form1.vb MD5 skey8位加密(文件)/MD5 skey8位加密(文件).vbproj MD5 skey8位加密(文件)/MD5 skey8位加密(文件).vbproj.user MD5 skey8位加密(文件)/My Project/ MD5 skey8位加密(文件)/My Project/Application.Designer.vb MD5 skey8位加密(文件)/My Project/Application.myapp MD5 skey8位加密(文件)/My Project/AssemblyInfo.vb MD5 skey8位加密(文件)/My Project/Resources.Designer.vb MD5 skey8位加密(文件)/My Project/Resources.resx MD5 skey8位加密(文件)/My Project/Settings.Designer.vb MD5 skey8位加密(文件)/My Project/Settings.settings MD5 skey8位加密(文件)/obj/ MD5 skey8位加密(文件)/obj/Debug/ MD5 skey8位加密(文件)/obj/Debug/CoreCompileInputs.cache MD5 skey8位加密(文件)/obj/Debug/DesignTimeResolveAssemblyReferences.cache MD5 skey8位加密(文件)/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).exe MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).pdb MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbproj.FileListAbsolute.txt MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbproj.GenerateResource.Cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbprojResolveAssemblyReference.cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).xml MD5 skey8位加密(文件)/obj/Debug/TempPE/ MD5 skey8位加密(文件)/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.exe MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.Form1.resources MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.pdb MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.Resources.resources MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.vbproj.FileListAbsolute.txt MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.vbproj.GenerateResource.Cache MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.xml MD5 skey8位加密(文件)/obj/Release/ MD5 skey8位加密(文件).sln MD5 skey8位加密(文件).v11.suo

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仲夏夜茫七月未央

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值