`
yipbxx
  • 浏览: 58858 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

md5加密原理

    博客分类:
  • web
阅读更多
md5加密原理

首先要明白一个概念,md5不是用于加密,而是用于数据的完整性校验的一种技术。

这是一个单向散列函数,单向的意思就是说不可逆转。你可以将源内容通过md5函数散列出一个md5校验码,这个md5校验码是唯一的,你可以作为证明源的身份标识,但是你无法通过md5校验码去还原源。
Src ---> md5 --->md5Code
但是 md5Code --->某算法 ---> Src 是不可能的

同样的内容经过md5算法总是得到相同的md5校验码。

之所以给人以md5是用于加密的这种假象,是因为该技术应用于很多密码校验和文件完整性校验过程中。

如你的password用明文输入,经过md5以后形成一个32字节的 md5校验码,保存在服务器上。服务器的管理员可以看到你的32字节的md5校验码,但是因为没有办法通过md5校验码还原成原密码,因此该密码的保存(实际上是保存的密码的一个唯一标识)是安全的。
校验的时候,你输入你的密码,经过md5以后形成一个新的32字节的md5校验码,服务器比较新的校验码和旧的校验码就可以判断你是否输入了正确的密码。在整个认证和鉴权的过程中,服务器只和你的密码生成以后的md5校验码打交道,而避免了和密码直接打交道。

其次用得非常多的是文件的完整性校验。
我们都经常从FTP站点上下载文件,在Internet不可信任的环境中,存在很多的不安全因素。如果你下载的session被人截获,并在下载的文件中插入危险代码,使得当你下载完毕运行程序的时候植入木马或者病毒或者其他非安全的代码。要验证文件的完整性,FTP server一般将整个文件夹打成包,如iso文件,然后同时给出md5校验码。当你下在该iso文件,在刻盘之前,运行md5程序产生一个md5校验码,如果和FTP Server上的校验码一样,就可以证明:在文件传输的过程中没有产生错误和任何修改。如果你信赖该FTP Server,那么你就可以放心使用该文件或资源。

样例:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class md5 {
 public String str;

 public void md5s(String plainText) {
  try {
   MessageDigest md = MessageDigest.getInstance("MD5");
   md.update(plainText.getBytes());
   byte b[] = md.digest();

   int i;

   StringBuffer buf = new StringBuffer("");
   for (int offset = 0; offset < b.length; offset++) {
    i = b[offset];
    if (i < 0)
     i += 256;
    if (i < 16)
     buf.append("0");
    buf.append(Integer.toHexString(i));
   }
   str = buf.toString();
   System.out.println("result: " + buf.toString());// 32位的加密
   System.out.println("result: " + buf.toString().substring(8, 24));// 16位的加密
  } catch (NoSuchAlgorithmException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();

  }
 }

 public static void main(String agrs[]) {
  md5 md51 = new md5();
  md51.md5s("4");//加密4
 }

} 

分享到:
评论

相关推荐

    MD5加密原理

    MD5加密

    MD5加密原理.doc

    ### MD5加密原理详解 #### 一、MD5加密起源与发展 MD5,全称为Message-Digest Algorithm 5,是一种广泛应用于信息安全领域的哈希函数,最初由MIT实验室和RSA Data Security Inc.的Ronald L. Rivest在1991年开发。...

    MD5加密原理及安全性分析.pdf

    ### MD5加密原理及安全性分析 #### 一、引言 MD5(Message-Digest Algorithm 5)是一种广泛应用的散列算法,它被设计用于确保数据的完整性和一致性。该算法由Ron Rivest于1991年提出,并经历了MD2、MD3和MD4的发展...

    servlet中md5加密

    ### MD5加密原理 MD5算法是一种广泛使用的散列函数,它可以将任意长度的数据转换为一个固定长度的、通常为128位(16字节)的散列值,通常表示为32个十六进制数字。这个散列值具有以下特性: 1. **唯一性**:不同的...

    JAVA_对文件MD5加密

    #### MD5加密原理 MD5算法通过一系列复杂的数学运算,将输入的信息转换为一个固定的128位输出值。该输出值通常被表示为一个32位的十六进制数,用于验证数据的完整性和一致性。由于其计算速度快、安全性较高且易于...

    MD5加密视频

    MD5,全称为Message-Digest...通过观看“md5加密原理.mp4”这个视频,你将更直观地了解MD5加密的过程,包括具体的数学运算和实际应用案例,有助于加深对MD5的理解,并可能启发你在信息安全实践中如何有效利用这种技术。

    HTML实现基于MD5加密的登录注册界面源码

    HTML实现基于MD5加密的登录注册界面是一种常见的用户信息安全措施,尤其在Web开发中,用于保护用户的账号...通过这个项目,开发者可以深入理解HTML页面构建、MD5加密原理以及如何在实际应用中提高用户数据的安全性。

    delphi中md5加密技术

    #### 二、MD5加密原理 MD5算法的核心是一个迭代过程,其中包含了一系列复杂的数学运算,如布尔函数、循环移位等。MD5加密过程大致分为以下几个步骤: 1. **填充**:如果原始消息的长度(以比特计)对512不整除,则...

    md5加密C语言实现

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,由计算机科学家Ronald Rivest在1991年设计。它能够将任意长度的数据转换为固定长度的...通过对这些代码的理解,可以加深对MD5加密原理和C语言编程的掌握。

    实现MD5加密

    #### 二、MD5加密原理 MD5算法通过对输入的信息进行多次迭代处理来生成最终的散列值。具体步骤包括: 1. **填充消息**:确保消息长度对512位(即64字节)取余后的结果为448。 2. **附加原消息长度**:在填充后的...

    MD5加密工具类

    ##### 2.2 MD5加密原理 MD5算法通过多次循环处理输入数据,每轮循环都会更新一个128位的状态向量。最终得到的状态向量即为MD5哈希值。具体步骤包括: - 初始化状态向量。 - 分割输入消息成512位的消息块。 - 对每个...

    MD5的加密 具体的实现方法

    根据提供的文件信息,本文将详细解释MD5加密的原理、用途以及如何在具体的代码实现中进行操作。 ### MD5加密概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,它可以将任意长度的数据转换为一个...

    MD5在线加密工具 v1.0 Bulid1217

    了解这些知识点后,无论是对于学习MD5加密原理,还是实际操作MD5加密工具,都能提供必要的帮助。在日常工作中,理解MD5的特性以及其在不同场景下的适用性,对于数据安全和信息安全的维护至关重要。同时,通过阅读和...

    md5加密md5加密

    ### MD5加密原理 MD5加密的核心思想是通过一系列复杂的数学运算将原始数据转化为固定长度的摘要值。这个过程是不可逆的,即无法从摘要值反推出原始数据。MD5算法主要由以下步骤组成: 1. **填充消息**:为了让消息...

    MD5加密解密

    ### MD5加密原理 MD5加密过程可以分为以下几个步骤: 1. **预处理**:将原始消息进行填充和添加长度信息。 2. **分组处理**:将经过预处理的消息分成多个512位的数据块。 3. **迭代压缩**:对每个数据块进行多次...

    Oracle实现MD5加密

    在IT领域,尤其是在数据库安全与数据完整性保护方面,MD5加密技术被广泛应用于各种场景,包括用户密码存储、数据校验等。Oracle数据库作为一种企业级的数据库管理系统,提供了多种方式来实现MD5加密,这对于确保数据...

    Excel的MD5加密的2种实现方式

    在提供的压缩包文件中,`md5宏.xla`可能包含了一个宏的实现,而`MD5加密2种方式.xlsx`则可能是包含VBA函数或者演示如何使用VBA函数进行MD5加密的Excel工作簿。为了安全起见,使用外部来源的宏时应谨慎,确保其来源...

    MD5加密方法

    一、MD5加密原理 MD5算法由Ronald Rivest在1991年设计,它的主要目的是提供一个信息摘要,使得篡改原始数据后,通过计算出的哈希值可以轻易发现。MD5的过程包含多个步骤,包括初始化、分区、处理和组合,最终生成一...

    md5加密方法

    #### 二、MD5加密原理 MD5加密的核心原理是对输入的信息进行一系列复杂的变换处理,包括填充、分组、压缩函数等步骤。最终输出的是一个固定长度的摘要信息。由于其计算速度快、散列结果稳定等特点,在很多场景下得到...

Global site tag (gtag.js) - Google Analytics