Java 简单的MD5加密

转载 2008年09月28日 15:04:00

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

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

两个不同的报文难以生成相同的摘要
难以对指定的摘要生成一个报文,而可以由该报文反推算出该指定的摘要
代表:美国国家标准技术研究所的SHA1和麻省理工学院Ronald Rivest提出的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;
    }

MD5加密的简单java实现

MD5加密
  • liu1782291245
  • liu1782291245
  • 2017年06月19日 14:24
  • 12471

最简单详细的java MD5加密算法

public class MD5Util { /** * MD5加密算法 * @param str 需要转化为MD5码的字符串 * @return 返回一个3...
  • u014663563
  • u014663563
  • 2016年10月09日 09:47
  • 9383

“用户登陆”之MD5加密

一、前言 众所周知,我们在网络中传送一些数据时,会有被窃听的风险。因此,我们需要对需要保密的数据进行加密,才能保证数据不被泄露。而加密的方式有两种,一种是对客户端和服务端整个通信信道进行保护加密,如h...
  • StarsionBlog
  • StarsionBlog
  • 2017年05月14日 21:36
  • 330

java 文件加密 用的是md5值进行文件加密

加密解密的背景, 原理和用法在代码注释里 代码: import java.io.File; import java.io.FileInputStream; import java.io.FileO...
  • nx188
  • nx188
  • 2016年06月21日 11:46
  • 1908

MD5加密原理和Java实现

MD5加密算法为现在应用最广泛的哈希算法之一,该算法广泛应用于互联网网站的用户文件加密,能够将用户密码加密为128位的长整数。数据库并不明文存储用户密码,而是在用户登录时将输入密码字符串进行MD5加密...
  • qq_19776363
  • qq_19776363
  • 2015年10月14日 19:50
  • 1060

MD5加密的一种写法

package com.ezendai.credit2.common.util; import java.security.MessageDigest; /** * *@au...
  • lv_a1b2c3
  • lv_a1b2c3
  • 2016年10月19日 10:53
  • 312

MD5加盐算法(JAVA)

声明: 下面算法是网上看到的,自己做记录用,每个用户随机不同盐值,生成48位密码。 算法描述: import java.security.MessageDigest; import java.u...
  • xiaocha2008
  • xiaocha2008
  • 2015年01月19日 13:37
  • 10265

js java 前后台md5加密

当做用户登陆、注册的用户名与密码加密时,可以在前端用js定义md5函数对值做哈希,如此用户提交表单后,在网络中路由间传递的便是简单加密后的信息,而非明文信息,等表单提交到后台后,可用md5再次对其进行...
  • arenn
  • arenn
  • 2016年12月09日 14:26
  • 2359

MD5加密应用之.NET与JAVA差异分析

由于项目的特殊性,在项目中需要使用其他系统数据库中的用户信息对用户进行登录认证。在原系统(.NET所开发的)中,用户密码是进行加密存储的,如果需要使用原系统中现有的数据对用户进行认证,就必须要知道原系...
  • hjl_453444715
  • hjl_453444715
  • 2015年06月13日 15:35
  • 2320

Java MD5加密算法的实现

前 言:在我们日常的编程中,md5加密算法是用的比较多的一种加密方式,一个加密内容只能生成一个加密后的内容,而且还不能进行解密的;所以在日常的生活中用于生成一些本地图片的路径或者是需要生成唯一的字符串...
  • u012417984
  • u012417984
  • 2015年11月14日 18:58
  • 3049
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 简单的MD5加密
举报原因:
原因补充:

(最多只允许输入30个字)