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

       看你想要那种结果。

  • 相关阅读:
    解决firefox的button按钮文字不能垂直居中
    郁闷呢
    我的生活走入正轨
    空闲的日子写写日记
    今天可以写心事
    终于可以写字了
    有地方可以发表自己的心事了。
    Shopify:产品详情页购买按钮下方支持的支付方式图标如何修改?
    Wordpress报错:Allowed memory size of 134217728 bytes exhausted
    安装Xshell报错:由于找不到MSVCR110.dll,无法继续执行代码。重新安装程序可能会解决此问题
  • 原文地址:https://www.cnblogs.com/junrong624/p/4121093.html
Copyright © 2011-2022 走看看