`
wesker0918
  • 浏览: 42116 次
  • 性别: Icon_minigender_1
  • 来自: 山东->北京
社区版块
存档分类
最新评论

Java中使用MD5加密

阅读更多

在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,本文简要介绍工作中常用的MD5加密算法,希望能抛砖引玉。
(一)消息摘要简介
一个消息摘要就是一个数据块的数字指纹。即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于SHA1是产生一个20字节的二进制数组)。消息摘要是一种与消息认证码结合使用以确保消息完整性的技术。主要使用单向散列函数算法,可用于检验消息的完整性,和通过散列密码直接以文本形式保存等,目前广泛使用的算法有MD4、MD5、SHA-1。

消息摘要有两个基本属性:

两个不同的报文难以生成相同的摘要
难以对指定的摘要生成一个报文,而可以由该报文反推算出该指定的摘要
代表:美国国家标准技术研究所的SHA1和麻省理工学院RonaldRivest提出的MD5

(二)对字符串进行加密

/**利用MD5进行加密
* @param str  待加密的字符串
* @return  加密后的字符串
* @throws NoSuchAlgorithmException  没有这种产生消息摘要的算法
* @throws UnsupportedEncodingException  
*/
public String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException{
	//确定计算方法
	MessageDigest md5 = MessageDigest.getInstance("MD5");
	BASE64Encoder base64en = new BASE64Encoder();
	//加密后的字符串
	String newstr = base64en.encode(md5.digest(str.getBytes("utf-8")));
	return newstr;
}

 

调用函数:
String str="0123456789"
System.out.println(EncoderByMd5(str));
输出:
eB5eJF1ptWaXm4bijSPyxw==

 

(三)验证密码是否正确
因为MD5是基于消息摘要原理的,消息摘要的基本特征就是很难根据摘要推算出消息报文,因此要验证密码是否正确,就必须对输入密码(消息报文)重新计算其摘要,和数据库中存储的摘要进行对比(即数据库中存储的其实为用户密码的摘要),若两个摘要相同,则说明密码正确,不同,则说明密码错误。

/**判断用户密码是否正确
* @param newpasswd  用户输入的密码
* @param oldpasswd  数据库中存储的密码--用户密码的摘要
* @return
* @throws NoSuchAlgorithmException
* @throws UnsupportedEncodingException
*/
public boolean checkpassword(String newpasswd,String oldpasswd) throws NoSuchAlgorithmException, UnsupportedEncodingException{
	if(EncoderByMd5(newpasswd).equals(oldpasswd))
  		return true;
	else
  	                return false;
}

 

分享到:
评论

相关推荐

    java中使用MD5加密

    在java中或是在jsp中实现对字符串的加密。

    JAVA中使用MD5加密实现密码加密

    JAVA中使用MD5加密实现密码加密 在 JAVA 中实现密码加密是一个非常重要的安全机制,MD5 加密是其中一种常用的加密方式。本文将详细介绍如何使用 MD5 加密在 JAVA 中实现密码加密。 一、MD5 加密的原理 MD5...

    java中使用MD5加密算法进行加密.pdf

    在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5加密。首先,需要获取MD5的实例,这可以通过调用`getInstance("MD5")`方法完成。接着,我们需要将待加密的字符串转化为字节数组,然后调用`digest()...

    java与c#MD5加密方法得到不一致解决办法

    java与c#MD5加密方法得到不一致解决办法,MD5加密后得到不一致结果

    java实现md5 加密解密

    java实现md5 加密解密(在网络中MD5是著名的不可逆算法,但是如果知道MD5的加密的字符串 则可以通过自己的加密算法对明文进行加密,对加密后的密文与字符串匹配; 匹配成功,表示找到明文;但是此程序的时间耗费较高!仅...

    JAVA_对文件MD5加密

    下面我们将详细介绍如何使用Java语言实现对文件进行MD5加密的过程。 #### MD5加密原理 MD5算法通过一系列复杂的数学运算,将输入的信息转换为一个固定的128位输出值。该输出值通常被表示为一个32位的十六进制数,...

    MD5加密32位小写

    在提供的压缩包文件“MD5”中,可能包含了一个Java程序示例,演示了如何使用MD5加密并生成32位小写的哈希值。这个程序可以作为一个基础模板,帮助开发者快速集成MD5功能到自己的项目中。 总之,MD5是一种便捷的哈希...

    JAVA中MD5加密

    在Java编程语言中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它将任意长度的数据转化为固定长度的输出,通常为32位的16进制字符串。MD5的主要用途是对数据进行校验,确保数据在传输过程中没有被...

    java实现MD5加密算法

    总结,Java实现MD5加密算法主要是通过`java.security.MessageDigest`类,经过`getInstance("MD5")`获取MD5实例,然后使用`digest()`和`update()`方法处理数据,最终将二进制摘要转换为十六进制字符串。尽管MD5的安全...

    java 实现文件MD5 加密比较,防止上传重复文件

    这个类可以实现,java语言下通过对上传文件进行MD5加密,然后将加密值与原来上传的文件加密值进行对比,防止上传重复文件。

    Java中实现Md5(32位)加密

    Java中实现Md5(32位)加密,此资源下载后可直接在程序中使用

    JAVA中MD5加密密码算法

    在Java编程语言中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要目的是为了产生一个固定长度的、不可逆的数字摘要,常用于存储密码。MD5算法将任意长度的输入(也叫做预映射,pre-image)通过...

    java md5加密

    java中的md5加密函数,已经封装成类和函数了,非常好用。

    java md5加密 解密

    2. **Java中的MD5加密**:在Java中,可以使用`java.security.MessageDigest`类来实现MD5加密。首先,需要创建一个MD5实例,然后更新要加密的字节数组,最后获取并转换成十六进制字符串。 ```java import java....

    JAVA的hex_md5加密

    java中的MD532位加密。将java类放入项目中,使用encrypByMd5静态方法即可生成hex_md5 32位加密的字符串。

    md5加密java写法轻松实现md5让你学会加密,会的可以给点建议,不会的可以借鉴,大家讨论加密!很方便的使用!

    md5加密java写法轻松实现md5让你学会加密,会的可以给点建议,不会的可以借鉴,大家讨论加密!很方便的使用!

    java后台及前端js使用AES互相加解密及前端md5加密

    综上所述,本主题涵盖了Java和JavaScript中数据加密的重要技术,包括AES的双向加解密和MD5的单向加密。在实际应用中,这些技术可以帮助保护用户数据,确保网络通信的安全。在开发过程中,要确保遵循最佳安全实践,...

    java写的MD5加密程序

    java写的MD5加密程序,具有短小的特点

    java中关于Springboot加密 md5加密,注册密码加密到数据库中的关键语句,md5加密语句.pdf

    在Spring Boot中,我们可以使用`DigestUtils.md5DigestAsHex()`方法来对字符串进行MD5加密。这个方法接受一个字节数组作为参数,返回一个32位的小写十六进制字符串,代表了原始字符串的MD5哈希值。以下是一个简单的...

Global site tag (gtag.js) - Google Analytics