精华内容
下载资源
问答
  • MD5算法-哈希算法

    千次阅读 2018-12-25 16:30:29
    MD5算法 哈希算法 MD5算法具有以下特点: 1、压缩性:任意长度的数据,算出的MD5值...4、强抗碰撞:已知原数据MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。 import java.security.Messa...
    MD5算法 哈希算法
    
    MD5算法具有以下特点:
    1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
    2、容易计算:从原数据计算出MD5值很容易。
    3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
    4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
    
    import java.security.MessageDigest;
    
    public class MD5Util {
        public static String digest16(String inStr) {  
        	return digest(inStr, 16);
    	}
        public static String digest(String inStr) {  
        	return digest(inStr, 32);
    	}  
        private static String digest(String inStr, int rang) {  
    	    MessageDigest md5 = null;  
    	    if ( StringUtil.isEmpty(inStr) ) {
    	    	return "";
    	    }
    	  
    	    try {
    	        md5 = MessageDigest.getInstance("MD5");  
    	    } catch (Exception e) {  
    	        e.printStackTrace();  
    	        return "";  
    	    }
    	    
    	    char[] charArray = inStr.toCharArray();  
    	    byte[] byteArray = new byte[charArray.length];  
    	  
    	    for (int i = 0; i < charArray.length; i++) {
    	    	byteArray[i] = (byte) charArray[i];	
    	    }
    	    
    	    byte[] md5Bytes = md5.digest(byteArray);  
    	    
    	    StringBuilder hexValue = new StringBuilder();  
    	  
    	    for (int i = 0; i < md5Bytes.length; i++) {  
    	        int val = ((int) md5Bytes[i]) & 0xff;  
    	        if (val < 16)  
    	            hexValue.append("0");  
    	        hexValue.append(Integer.toHexString(val));  
    	    }  
    	    if ( rang == 32 ) {
    	    	return hexValue.toString();	
    	    } else {
    	    	return hexValue.toString().substring(8, 24);
    	    }
    	}  
    
        public static void main(String args[]) {  
    	    String s = new String("admin");
    	    System.out.println(digest(s));
    	}  
    } 

     

    展开全文
  • sha1和md5区别

    2019-09-26 12:47:38
    Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入,变换成固定长度的输出,该输出就是散列。这种转换是一种压缩映射,也就是,散列的...MD5与SHA1都是Hash算法,MD5输出是128位的,SHA1输...
    Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
    MD5与SHA1都是Hash算法,MD5输出是128位的,SHA1输出是160位的,MD5比SHA1快,SHA1比MD5强度高。

    转载于:https://www.cnblogs.com/Caersi/p/6710089.html

    展开全文
  • 将数据(如汉字)运算为另一固定长度,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。 PS:写这篇文章的本意是把我在工作中使用的MD5加密技巧分享出来,和大家一起交流,可能应为水平有限会有遗漏之处望...

    MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。

    PS:写这篇文章的本意是把我在工作中使用的MD5加密技巧分享出来,和大家一起交流,可能应为水平有限会有遗漏之处望大家包含,也请大家提出建议我会进一步完善.

    1.MD5算法具有以下特点:
    1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
    2、容易计算:从原数据计算出MD5值很容易。
    3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
    4、弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
    5、强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。
    根据以上的特定我们能总结出几个根据以上特点衍生出来可以供我们使用的特性:

    1.方便存储:MD5加密出来都是32位的字符串,能够给定固定大小的空间存储,传输,验证
    2.文件加密:MD5运用在文件加密上很有优势,应为只需要32为字符串就能对一个巨大的文件进行验证完整性
    3.不 可 逆:MD5加密出来只会截取末尾32位,具有良好的安全性,如果是对于参数加密很难伪造MD5
    4.加密损耗低:MD5加密对于性能的消耗微乎其微(我获得的结果是:0.001毫秒)
    2.实际上需要如何应用呢
    我在实践中常常会用到的MD5校验加密一般运用场景:用户密码,请求参数,文件校验

    2.1.用户密码
    对于用户密码加密最高境界就是:别人获得你数据库的用户资料别人也没有办法获知密码.要达到就要有一套复杂的加密规则,一般常用的规则比如:

    MD5(MD5(用户名+用户密码)+MD5(KEY+项目名+公司名)) 这样可以避免和别人碰库不排除别人用MD5来攻击你的服务器来匹配.

    当然还可以自定很多种加密方法,就算知道加密方法也几乎无法去推送出用户原密码是什么

    2.2.请求参数校验
    都与服务器来言排除系统问题最大的问题就是害怕请求被拦截,拦截修改之后就有很多漏洞的可能性了

    为了避免被拦截,参数被修改这种文件的常用方法就是对请求参数进行校验,就算拦截了请求参数修改了只要模拟不出MD5加密出来的值,在服务器过滤器直接就会进行拦截.

    我这边推荐的请求校验方法在传递参数的时候带上 MD5值 随机数 时间戳 当然这几个都是由客户端生成 MD5=MD5(随机数+时间戳+MD5(KEY+公司名+项目名)) 当然这个规则也是可以定制的

    请求参数在服务器拦截器就用客户端传递过来的 随机数 时间戳 来做校验如果不通过就不让继续访问(在这里的随机数 时间戳在后面的请求安全请求唯一性验证中会起到很大的作用所以建议保留)

    2.3文件校验
    当然对于一些图片已经一些很小很小的文件来说可以不用MD5校验应为基本上都是一次请求就完成了上传,而且显示的时候也不需要验证图片完不整.

    但是如果是遇到了大文件上传MD5 就起到作用了,当然不是吧一个几个G 的文件一次性上传使用MD5校验,这边100%会失败 就算传递到服务端了 这个时间是不能被接受的 ,而且服务器最好是对请求做好限制(以后会开一篇来单独探讨文件上传的问题)

    我们对于大文件上传的处理方式是进行分片上传,也就是所谓的断点续传,里面的实现机制

    如果有一个5MB的文件 客户端把它分割成5份 1MB的文件 在上传的时候 上传两个MD5值 一个是当前上传的片1MB文件流的MD5 还有一个就是拼接之后的MD5(如果现在上传的是第二片 这个MD5就应该是第一片加上第二片的MD5)通过这样的方式能保证文件的完整性

    当如果文件传到一半断了,用户换了台机器传 通过验证文件MD5 值就可以得知用户已经传到了第几片 就可以告诉用户从第几片开始传递 就解决了这个问题

    3.总结:
    在不知不觉中MD5校验早已经运用到我们生活中的点点滴滴,无时无刻不在使用者MD5.通过以上的例子说明了MD5在我们服务器开发安全中扮演着不可替代的角色,在日常的开发中使用MD5校验技术可以有效的避免莫些安全性的问题.

    关于MD5 32位和16位的区别
    有人说md5,128位,32位,16位,到底md5多长?

    md5的长度,默认为128bit,也就是128个0和1的二进制串。

    这样表达是很不友好的。

    所以将二进制转成了16进制,每4个bit表示一个16进制,

    所以128/4 = 32 换成16进制表示后,为32位了。

    为什么网上还有md5是16位的呢?
    网上有很多帖子,md5 32位 16位 加密 区别。

    仔细观察admin生成的32位和16位的md5值……

    	查询结果:
    
    	md5(admin,32) = 21232f297a57a5a743894a0e4a801fc3
    
    	md5(admin,16) = 7a57a5a743894a0e
    

    看出来了吧!

    其实16位的长度,是从32位md5值来的。是将32位md5去掉前八位,去掉后八位得到的。

    展开全文
  • 把一个任意长度的字节串变换成一定长度的十六进制的大整数,用于确保“信息传输”完整一致。 注意: 字符串的转换过程是不可逆的。 MD5 特点: ...弱抗碰撞: 已知原数据MD5 ,想找到一个具有相...

    把一个任意长度的字节串变换成一定长度的十六进制的大整数,用于确保“信息传输”完整一致。

    注意: 字符串的转换过程是不可逆的。

    MD5 特点:

    1. 压缩性: 任意长度的数据,算出的 MD5 值长度都是固定的;
    2. 容易计算: 从原数据计算出 MD5 值很容易;
    3. 抗修改性: 对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别;
    4. 弱抗碰撞: 已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造数据)是非常困难的;
    5. 强抗碰撞: 想找到两个不同数据,使他们具有相同的 MD5 值,是非常困难的。

    MD5 应用:

    1. 一致性验证: MD5 将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的 MD5 信息摘要;
    2. 数字签名: 就像每个人都有自己独一无二的指纹,MD5 对任何文件产生一个独一无二的“数字指纹”;
    3. 安全访问认证: 利用 MD5 来进行文件校验,被大量应用在软件下载站、论坛数据库、系统文件安全等方面。

    MD5 加盐:

    • MD5 本身是不可逆运算,但是,目前网络上有很多数据库支持反查询;
    • MD5 加盐就是在密码哈希过程中添加的额外的随机值;
    • 注意: 加盐要足够长,足够复杂。
    展开全文
  • MD5 小写 C语言

    2015-11-10 11:52:55
    将数据(如汉字)运算为另一固定长度,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。 MD5算法具有以下特点: 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值...
  • MD5 标准算法详解

    2020-07-25 12:00:23
    1 简介 目的: 将任意长度的明文,转化...3)弱抗碰撞:已知原数据MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。 4)强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。
  • md5.main.js资源

    2018-12-10 10:52:57
    将数据(如汉字)运算为另一固定长度,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。 MD5算法具有以下特点: 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5...
  • 当我们从互联网下载东西或者从U盘...所以就有了以SHA1和MD5为代表的哈希值校验,数学上的功夫就不多说了,反正就是SHA1或者MD5一致,两个文件基本就可以判断是完全一致的了。在windows下有很多工具可以校验哈希值,那
  • 一、哈希HASH 1.MD5加密 MD5加密的特点: 不可逆运算 对不同的数据加密的结果是定长的32位字符(不管文件多大都...弱抗碰撞 : 已知原数据MD5 ,想找到一个具有相同 MD5 的数据(即伪造数据)是非常困难的...
  • 用Gpu破解md5、sha1等加密密码的软件

    千次阅读 2011-11-29 00:07:24
    用Gpu破解md5、sha1等加密密码...该软件可使用ATI的RV 7X0/8X0 系列nVidia“CUDA”的显卡来暴力破解MD4、MD5及SHA1等哈希值加密的密码,即本地解密md5区别于在线解密如:http://www.cmd5.com/ 等。速度依赖于GPU,
  • HTTPHTTPS的区别

    2019-09-06 16:30:17
    在信息的后面加上一段内容(哈希值) HTTPS 是证书配合各种加密手段的方式 HTTPS在数据传输之前会进行一次握手与web服务器,握手时确定双方的加密信息 用户一般不会输入协议(http/https),当输入...
  • 对于较短的定长字符串来说(比如存储密码的md5哈希值)用char要比 varchar要好,因为固定长度的char不容易产生碎片。 char(1)指占用一个字节,varchar(1) 会占用两个字节,因为有一个字节用来存储长度信息。 ...
  • 摘要与加密的区别

    2019-11-13 23:27:18
    摘要是哈希值,我们通过散列算法比如MD5算法就可以得到这个哈希值。 摘要只是用于验证数据完整性唯一性的哈希值,不管原始数据是什么样的,得到的哈希值都是固定长度的。 不管原始数据是什么样的,得到的哈希值都...
  • 详细的介绍了hash、chunkhash、contenthash的用法和区别hash、chunkhash、contenthashhash一般是结合CDN缓存来使用,通过webpack构建之后,生成对应文件名自动带上对应的MD5值。如果文件内容改变的话,那么对应文件...
  • SHA-1 MD5算法    严格说来它们不算是加密算法,只能说是摘要算法。 SHA-1算法:Security Hash Algorithm 安全哈希算法, 它可以把长度不超过2的64次方位的信息转换成160位(20字节)长的散列   MD5算法...
  • 项目遇到的小问题2

    2018-09-03 23:13:00
    MD5算法(摘要算法、哈希算法)  1.MD5算法特点  压缩性:任意长度的数据,算出的MD5值长度都是固定的  容易计算:从原数据计算出MD5值很容易  抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD...
  • 加密解密初体验

    2021-04-18 10:19:41
    加密 一般情况下,使用不同语言开发的双方只有约定加密模式明文...4、抗修改性 : 信息“指纹”,对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 都有很大区别. 5、弱抗碰撞 : 已知原数据MD5 ,想找
  • 5、sha1加密(安全[哈希算法])只是叫做一种算法,用于检验数据完整性 全名: 安全哈希算法(Secure Hash Algorithm)输出: 160bit 与Md5比较 相同点: 因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的...
  • 密码加密我们一般会用到散列函数,又称散列算法、哈希函数,这是一种从任何数据中创建数字“指纹”的方法。 散列函数把消息或数据压缩成...我们常用的散列函数有 MD5 消息摘要算法、安全散列算法(Secure Hash Algor
  • 生固定长度的哈希值,在哈希过程当中,最后得到【160】位的消息摘要值 8. 公司对电脑密码的强度要求是:字母加数字组合【8】位以上。 9. 将明文转换为密文的操作类型上,基于操作有两类【代替】【置换】,还有一类...
  • golang面试题:能说说uintptrunsafe.Pointer的区别吗? golang 面试题:reflect(反射包)如何获取字段 tag?为什么 json 包不能导出私有变量的 tag? 协程线程的差别 垃圾回收的过程是怎么样的? 什么是写屏障...
  • WINRAR5.0正式注册版

    2013-10-10 10:14:03
    的恢复记录,如 1 - 2%, 或较少的随机损坏类型时 4.x 5.0 的区别较少。对于单一 连续损坏,4.x 5.0 的效率是相同的。 此外,通常的数据抹除,新的恢复记录比之前的 RAR 版本可以检测删除插入更大的大 小...
  • rar压缩软件.rar

    2016-02-13 10:52:44
    RAR 是一个让你在命令行模式中管理压缩文件的控制台应用。RAR 提供压缩、加 密、数据恢复许多其它此手册中描述的其它功能。...此信息包括文件校验和值、主机 OS、压缩选项其他参数。 'lta' 不仅...
  • Blob负责将文件按分片大小切分,FileReader会按字节读取文件内容,并转换为ArrayBuffer对象(二进制缓冲区),SparkMD5负责计算文件最终哈希 // 计算文件哈希 calFileHash(file) { return new Promise((resolve, ...
  • 本工程包含了 SpringAOP,死锁,JUC同步锁,读-写同步锁,ThreadLocal使用,JUC线程池Spring提供的线程池,jdk 1.8 中的日期时间API,数据结构中 图的实现及操作广度优先遍历/深度优先遍历(其他待完善),生成XML...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

哈希值和md5区别