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

       看你想要那种结果。

  • 相关阅读:
    字符串 CSV解析 表格 逗号分隔值 通讯录 电话簿 MD
    Context Application 使用总结 MD
    RxJava RxPermissions 动态权限 简介 原理 案例 MD
    Luban 鲁班 图片压缩 MD
    FileProvider N 7.0 升级 安装APK 选择文件 拍照 临时权限 MD
    组件化 得到 DDComponent JIMU 模块 插件 MD
    gradlew 命令行 build 调试 构建错误 Manifest merger failed MD
    protobuf Protocol Buffers 简介 案例 MD
    ORM数据库框架 SQLite 常用数据库框架比较 MD
    [工具配置]requirejs 多页面,多入口js文件打包总结
  • 原文地址:https://www.cnblogs.com/junrong624/p/4121093.html
Copyright © 2011-2022 走看看