博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MD5加密以及产生唯一的ID
阅读量:5135 次
发布时间:2019-06-13

本文共 1448 字,大约阅读时间需要 4 分钟。

 

1:MD5即Message-Digest Algorithm 5(信息摘要算法5),是计算机广泛使用的散列算法之一(又译摘要算法、哈希算法)。经MD2、MD3和MD4发展而来,诞生于20世纪90年代初。用于确保信息传输完整一致。

MD5加密算法由于其具有较好的安全性,加之商业也可以免费使用该算法,因此该加密算法被广泛使用。MD5算法主要运用在数字签名、文件完整性验证以及口令加密等方面。

对信息系统或者网站系统来说,MD5算法主要用在用户注册口令的加密,对于普通强度的口令加密,可以通过以下三种方式进行破解:

(1)在线查询密码。一些在线的MD5值查询网站提供MD5密码值的查询,输入MD5密码值后,如果在数据库中存在,那么可以很快获取其密码值。

(2)使用MD5破解工具。网络上有许多针对MD5破解的专用软件,通过设置字典来进行破解。

(3)通过社会工程学来获取或者重新设置用户的口令。 因此简单的MD5加密是没有办法达到绝对的安全的,因为普通的MD5加密有多种暴力破解方式,因此如果想要保证信息系统或者网站的安全,需要对MD5进行改造,增强其安全性。但对于公司以及普通用户来说,从算法上来破解MD5非常困难,因此MD5仍然算是一种安全的算法。

2:产生全世界唯一的id

 

3:实现代码如下:

 

Md5
package com.zyw.md5;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import sun.misc.BASE64Encoder;//不过这些包是不建议使用的。。  需要使用自己的jdkpublic class Md5 {    public static String md5(String messages){        try {            MessageDigest md=MessageDigest.getInstance("md5");            byte[] md5=    md.digest();                        //转化为明文            BASE64Encoder encoder=new BASE64Encoder();            return encoder.encode(md5);        } catch (NoSuchAlgorithmException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return null;            }}

 

Snippet
package com.zyw.md5;import java.util.UUID;public class Snippet {    //产生全世界唯一的id        public static String generateID(){                    return UUID.randomUUID().toString();        }}

 

转载于:https://www.cnblogs.com/zyw-205520/archive/2012/09/21/2696934.html

你可能感兴趣的文章
ML面试1000题系列(91-100)
查看>>
html5 Canvas
查看>>
使用GDB调试产生多进程的程序
查看>>
element ui里dialog关闭后清除验证条件
查看>>
asp.net mvc 之旅—— 第一站 从简单的razor入手
查看>>
[iOS]UIDynamicAnimator动画
查看>>
收集转载-好参考
查看>>
[命令模式]在游戏开发中的应用
查看>>
Visual Studio 2005 重置设置
查看>>
变量、作用域和内存问题
查看>>
BZOJ——1626: [Usaco2007 Dec]Building Roads 修建道路
查看>>
洛谷—— P1847 轰炸II
查看>>
HTML5中类jQuery选择器querySelector的使用
查看>>
多线程
查看>>
nginx + tomcat + redis 部署项目,解决session共享问题。
查看>>
docker学习(三) 安装docker的web可视化管理工具
查看>>
Invalidate,Update与Refresh的区别
查看>>
《Language Implementation Patterns》之 解释器
查看>>
ADB server didn't ACK问题
查看>>
使用 bash 脚本把 GCE 的数据备份到 GCS
查看>>