`
Tristan_S
  • 浏览: 383126 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MD5散列算法

 
阅读更多
MD5生成16位的字节,一个字节就是8个bit 8个二进制字符  2个16进制字符
所以用16进制来查看MD5的结果是32个字符

byte[] b = Md5Utils.md5sum("123");
    	System.out.println(b.length);
    	 String resultString = byteArrayToHexString(b);
    	 System.out.println(resultString);


输出
16
202CB962AC59075B964B07152D234B70

SHA-1比MD5的碰撞概率更低,  20位字节

 public static String byteArrayToHexString(byte[] b){  
        StringBuffer resultSb = new StringBuffer();  
        for (int i = 0; i < b.length; i++){  
            resultSb.append(byteToHexString(b[i]));  
        }  
        return resultSb.toString();  
    }  
      
    /** 将一个字节转化成十六进制形式的字符串     */  
    private static String byteToHexString(byte b){  
        int n = b;  
        if (n < 0)  
            n = 256 + n;  
        int d1 = n / 16;  
        int d2 = n % 16;  
        return hexDigits[d1] + hexDigits[d2];  
    }  
public static byte[] md5sum(String s) {
    MessageDigest d;
    try {
      d = MessageDigest.getInstance("MD5");
    } catch (NoSuchAlgorithmException e) {
      throw new RuntimeException("MD5 algorithm not available!", e);
    }

    return d.digest(Bytes.toBytes(s));
  }
分享到:
评论

相关推荐

    MD5散列算法, C语言描述

    MD5散列算法是一种广泛使用的密码学散列函数,由美国计算机科学家罗纳德·李维斯特(Ronald Rivest)在1991年设计。它的全称是Message-Digest Algorithm 5,主要用于产生固定长度(128位,通常以32位十六进制数表示...

    MD5(散列算法)加密

    Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了"安全-带子"(safety-belts)的概念。虽然MD5比MD4复杂度大一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法...

    MD5散列算法/MD5哈希

    MD5加密算法的源代码是实现数据完整性验证和信息安全性的重要工具。它采用了一种单向哈希函数的方式,将任意长度的数据转换为一个固定长度的、独特的哈希值。这段代码的核心功能是将输入的字符串或数据块进行MD5哈希...

    基于fpga实现的MD5散列算法

    MD5的Verilog实现代码,可用

    jsmd5散列算法

    js md5加密,$.md5(String)返回十六进制数,支持中文

    md5散列值算法

    c++源文件,求任意序列的Md5. int F(unsigned int x,unsigned int y,unsigned int z); int G(unsigned int x,unsigned int y,unsigned int z); int H(unsigned int x,unsigned int y,unsigned int z); int I...

    md5散列加密算法 强大的工具

    MD5全称为Message-Digest Algorithm 5(消息摘要算法5),它的设计目标是在保持计算效率的同时,确保数据的原始性,防止数据被篡改。 MD5算法的核心原理是通过一系列复杂的数学和位操作,包括加法、异或、左移等,...

    md_5.rar_md-5_散列算法

    总结来说,MD5是一种经典的散列算法,尽管其安全性已被削弱,但仍然在某些场景下有着广泛应用。`md_5.c`文件提供了MD5算法的源代码实现,可以帮助我们理解和使用MD5来校验数据完整性。在深入学习和使用MD5时,需要...

    MD5散列函数的MATLAB代码

    压缩包中的`md5.m`可能是自定义的MATLAB MD5实现,它可能包括了MD5算法的四个步骤:初始化、列混淆、行混淆和结果拼接。 `md5test.m`可能是一个测试脚本,用于验证`md5.m`函数的正确性。它可能包含计算特定输入数据...

    MD5 算法的Java Bean

    MD5算法是RSA数据安全公司提出的一种散列算法,它能将任意长度的消息转换成一个固定长度(通常为128位)的“指纹”或摘要。这种算法在网络安全、密码学以及各种需要数据完整性检查的场景中广泛使用。本文档提供了一...

    MD5散列类封装 简单实用

    MD5散列是一种广泛应用于信息安全领域的加密算法,全称为Message-Digest Algorithm 5。它能够将任意长度的数据转化为固定长度的128位(16字节)的哈希值,通常以32位十六进制数的形式表示。在本案例中,"MD5散列类...

    认证及散列算法

    - **MD5**(Message Digest Algorithm 5):是由Rivest在1991年设计的一种散列算法,输出128位的散列值。虽然早期广泛使用,但由于安全性问题,现在已被更安全的算法所取代。 - MD5的基本流程包括填充输入消息、...

    md5加密算法

    MD5作为一种散列算法,虽然在某些场景下仍然有其应用价值,但在安全性方面已经显示出明显的局限性。了解MD5的工作原理及其潜在的安全风险对于确保数据的安全至关重要。随着技术的发展,开发人员应该考虑采用更先进的...

    Delpi版的MD5算法

    Delphi版本的MD5散列算法。支持字符串和文件的MD5散列算法。

    apr1-md5:Apache 在纯 PHP 中的 APR1-MD5 算法

    这是 Apache 的 APR1 MD5 散列算法在纯 PHP 中的测试、引用、记录和打包实现。安装作曲家.json: { " require " : { " whitehat101/apr1-md5 " : " ~1.0 " }}用 use WhiteHat101 \ Crypt \ APR1_MD5 ;// Check ...

    SHA(安全散列算法)

    ### SHA(安全散列算法) #### 一、概述 安全散列算法(Secure Hash Algorithm,简称SHA)是一种广泛应用于信息安全领域的数据加密算法。它最初由美国国家标准与技术局(National Institute of Standards and ...

    常用散列算法类源代码(6种)

    本资源包含六种常见的散列算法的C++源代码实现,包括CRC32、MD5、SHA-1、SHA-256、SHA-512以及Tiger-192。这些算法各有特点,适用于不同的应用场景。 1. CRC32(Cyclic Redundancy Check,循环冗余校验): CRC32是...

    MD5加密算法的JAVA实现

    MD5(Message-Digest Algorithm 5)是由Ron Rivest于1992年设计的一种散列算法,用于将任意长度的消息压缩成一个固定长度(128位)的散列值。这一过程是非可逆的,即无法通过散列值反推出原始消息。MD5算法主要包括...

    md5_source_1.0.0.1.rar_ATL_COM 组件_com组件_md5_md5 activ

    总之,这个压缩包提供了一个基于ATL和VC7.0的MD5 COM组件的源代码,它实现了MD5散列算法,适用于需要对数据进行完整性验证的应用场景。通过理解ATL COM组件的工作原理和MD5算法,开发者可以轻松地集成这个组件到自己...

Global site tag (gtag.js) - Google Analytics