密码学MD5|DES|RSA加密解密(内有源码)

平台: VS2015

密码学MD5|DES|RSA加密解密(内有源码)


The MD5 algorithm is a widely used hash function producing a 128-bit hash value. Although MD5 was initially designed to be used as a cryptographic hash function, it has been found to suffer from extensive vulnerabilities. It can still be used as a checksum to verify data integrity, but only against unintentional corruption.

Like most hash functions, MD5 is neither encryption nor encoding. It can be cracked by brute-force attack and suffers from extensive vulnerabilities as detailed in the security section below.

MD5 was designed by Ronald Rivest in 1991 to replace an earlier hash function MD4.[3] The source code in RFC 1321 contains a “by attribution” RSA license. The abbreviation “MD” stands for “Message Digest.”

The security of the MD5 has been severely compromised, with its weaknesses having been exploited in the field, most infamously by the Flame malware in 2012. The CMU Software Engineering Institute considers MD5 essentially “cryptographically broken and unsuitable for further use”.[4] Despite this known vulnerability, MD5 remains in use.

MD5


DES算法把64位的明文输入块变为64位的密文输出块,它所使用的**也是64位(实际用到了56位,第8、
DES算法流程
DES算法流程
16、24、32、40、48、56、64位是校验位, 使得每个**都有奇数个1),其算法主要分为两步:
1)初始置换
其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=D57D49……D7。
其置换规则见下表:
58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,
64,56,48,40,32,24,16,8,
57,49,41,33,25,17,9,1,
59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,
63,55,47,39,31,23,15,7,
2)逆置换
经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。
此算法是对称加密算法体系中的代表,在计算机网络系统中广泛使用。

DES


RSA公开**密码*。所谓的公开**密码*就是使用不同的加***与解***,是一种“由已知加***推导出解***在计算上是不可行的”密码*。
在公开**密码*中,加***(即公开**)PK是公开信息,而解***(即秘***)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解***SK是由公开**PK决定的,但却不能根据PK计算出SK。
正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA **,其中之一是保***,由用户保存;另一个为公开**,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA**至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开**加密方法相结合的方式,即信息采用改进的DES或IDEA对话**加密,然后使用RSA**加密对话**和信息摘要。对方收到信息后,用不同的**解密并可核对信息摘要。

RSA

源码下载

点击下载