zoukankan      html  css  js  c++  java
  • java MD5加密

    package com.wiseweb.util;
    
    import java.io.UnsupportedEncodingException;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import sun.misc.BASE64Encoder;
    
    public class MD5 {
        public static String EncoderByMd5(String str)
                throws NoSuchAlgorithmException, UnsupportedEncodingException {
            // MD5 加密,BASE64解析成字符串
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            BASE64Encoder base64en = new BASE64Encoder();
            String newStr = base64en.encode(md5.digest(str.getBytes("utf-8")));
            return newStr;
        }
    }

    我这边就是直接创建一个类,单独的写一个md5加密的方法。

    后面你在创建密码和获取密码的时候,直接调用这个方法就可以了。

    例如:在注册方法的时候:::

                       uEntity.setPassword( MD5.EncoderByMd5(uEntity.getPassword()));

    登陆的时候::::

                     user = userManager.checkUsername(uEntity.getName(), MD5.EncoderByMd5(uEntity.getPassword()));

       第二种方法: 

    public static String EncoderByMd5(String sourceStr) {
            String result = "";
            try {
                MessageDigest md = MessageDigest.getInstance("MD5");
                md.update(sourceStr.getBytes());
                byte b[] = md.digest();
                int i;
                StringBuffer buf = new StringBuffer("");
                for (int offset = 0; offset < b.length; offset++) {
                    i = b[offset];
                    if (i < 0)
                        i += 256;
                    if (i < 16)
                        buf.append("0");
                    buf.append(Integer.toHexString(i));
                }
                
                result = buf.toString();
                System.out.println("MD5(" + sourceStr + ",32) = " + result);
                System.out.println("MD5(" + sourceStr + ",16) = " + buf.toString().substring(8, 24));

    }
    catch (NoSuchAlgorithmException e) { System.out.println(e); } return result; }

     第三种方法:SHA_256加密的方法

    public static String SHA_256(String letter){
    
            String result = "";
            try{
                MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
                messageDigest.reset();
                messageDigest.update(letter.getBytes("UTF-8"));
                byte[] datas = messageDigest.digest();
                result = new String(Hex.encode(datas));
            }catch (Exception e){
                System.err.println(e.getMessage());
            }
            return result;
        }

    第一种加密出来的结果是:A17SMRuW0qZexqb+cQRsFA==

    第二种加密出来的结果是:32位:    23aa969097d27eab49da3604794cfaa8

                                      16位:    89f9124819228947

    第三种加密出来的结果是:8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

       看你想要那种结果。

  • 相关阅读:
    [转]自定义水晶报表纸张大小
    [转]Winform(C#)DataGridView显示Tooltip
    格式化日期字符串
    工具下载地址
    servlet: org.apache.tomcat.util.http.fileupload.FileUploadException: Processing of multipart/formdata request failed
    <<精通Spring2.x>>笔记:第2章学习源码
    andriod 缩略图Thumbnails学习
    转: Eclipse程序员要掌握的常用快捷键
    代码:指定大小的图片
    Android自定义的Camera的图片会90度旋转问题
  • 原文地址:https://www.cnblogs.com/junrong624/p/4121093.html
Copyright © 2011-2022 走看看