精华内容
下载资源
问答
  • Java MD5加密工具

    2021-02-12 18:33:42
    分享一个MD5加密工具类,可以当作小项目的登录密码验证模块。import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java....

    分享一个MD5加密的工具类,可以当作小项目的登录密码验证模块。

    import java.io.UnsupportedEncodingException;

    import java.security.MessageDigest;

    import java.security.NoSuchAlgorithmException;

    import java.security.SecureRandom;

    import java.util.Arrays;

    /**

    * MD5加密工具类

    */

    public class MD5Util {

    private static final String HEX_NUMS_STR = "0123456789ABCDEF" ;

    private static final Integer SALT_LENGTH = 12;

    /**

    * 将 16 进制字符串转换成字节数组

    * @param hex

    * @return

    */

    private static byte[] hexStringToByte (String hex) {

    int len = (hex.length() / 2);

    byte[] result = new byte[len];

    char[] hexChars = hex.toCharArray();

    for (int i = 0; i < len; i++) {

    int pos = i * 2;

    result[i] = (byte) (HEX_NUMS_STR.indexOf(hexChars[pos]) << 4 | HEX_NUMS_STR

    .indexOf(hexChars[pos + 1]));

    }

    return result;

    }

    /**

    * 将指定 byte 数组转换成 16 进制字符串

    * @param b

    * @return

    */

    private static String byteToHexString(byte[] b) {

    StringBuffer hexString = new StringBuffer();

    for (int i = 0; i < b.length; i++) {

    String hex = Integer.toHexString(b[i] & 0xFF);

    if (hex.length() == 1) {

    hex = '0' + hex;

    }

    hexString.append(hex.toUpperCase());

    }

    return hexString.toString();

    }

    /**

    * 获得加密后的 16 进制形式口令

    * @param password

    * @return

    * @throws NoSuchAlgorithmException

    * @throws UnsupportedEncodingException

    */

    public static String getEncryptedPwd(String password)

    throws NoSuchAlgorithmException, UnsupportedEncodingException {

    // 声明加密后的口令数组变量

    byte[] pwd = null;

    // 随机数生成器

    SecureRandom random = new SecureRandom();

    // 声明盐数组变量

    byte[] salt = new byte[SALT_LENGTH];

    // 将随机数放入盐变量中

    random.nextBytes(salt);

    // 声明消息摘要对象

    MessageDigest md = null;

    // 创建消息摘要

    md = MessageDigest.getInstance("MD5");

    // 将盐数据传入消息摘要对象

    md.update(salt);

    // 将口令的数据传给消息摘要对象

    md.update(password.getBytes("UTF-8"));

    // 获得消息摘要的字节数组

    byte[] digest = md.digest();

    // 因为要在口令的字节数组中存放盐,所以加上盐的字节长度

    pwd = new byte[digest.length + SALT_LENGTH];

    // 将盐的字节拷贝到生成的加密口令字节数组的前 12 个字节,以便在验证口令时取出盐

    System.arraycopy(salt, 0, pwd, 0, SALT_LENGTH);

    // 将消息摘要拷贝到加密口令字节数组从第 13 个字节开始的字节

    System.arraycopy(digest, 0, pwd, SALT_LENGTH, digest.length);

    // 将字节数组格式加密后的口令转化为 16 进制字符串格式的口令

    return byteToHexString(pwd);

    }

    /**

    * 验证口令是否合法

    * @param password

    * @param passwordInDb

    * @return

    * @throws NoSuchAlgorithmException

    * @throws UnsupportedEncodingException

    */

    public static boolean validPassword(String password, String passwordInDb){

    try {

    // 将 16 进制字符串格式口令转换成字节数组

    byte[] pwdInDb = hexStringToByte(passwordInDb);

    // 声明盐变量

    byte[] salt = new byte[SALT_LENGTH];

    // 将盐从数据库中保存的口令字节数组中提取出来

    System.arraycopy(pwdInDb, 0, salt, 0, SALT_LENGTH);

    // 创建消息摘要对象

    MessageDigest md = MessageDigest.getInstance("MD5");

    // 将盐数据传入消息摘要对象

    md.update(salt);

    // 将口令的数据传给消息摘要对象

    md.update(password.getBytes("UTF-8"));

    // 生成输入口令的消息摘要

    byte[] digest = md.digest();

    // 声明一个保存数据库中口令消息摘要的变量

    byte[] digestInDb = new byte[pwdInDb.length - SALT_LENGTH];

    // 取得数据库中口令的消息摘要

    System.arraycopy(pwdInDb, SALT_LENGTH, digestInDb, 0,digestInDb.length);

    // 比较根据输入口令生成的消息摘要和数据库中消息摘要是否相同

    if (Arrays.equals(digest, digestInDb)) {

    // 口令正确返回口令匹配消息

    return true;

    } else {

    // 口令不正确返回口令不匹配消息

    return false;

    }

    } catch (Exception e) {

    new Exception("数据库中保存的密码,没有进行MD5加密,数据非常不安全,请尽快加密!").printStackTrace();

    return false;

    }

    }

    public static void main(String[] args) throws NoSuchAlgorithmException,

    UnsupportedEncodingException {

    System.out.println(getEncryptedPwd("123456"));

    System.out.println(validPassword("123456","21166B5071425AED9C296696F55D7C86B22CAE9A9324F8F540320BBC"));

    }

    }

    展开全文
  • MD5加密工具

    2021-07-21 10:39:12
    * MD5加密 * @return 32位小写字符串 */ public static String encode(String text) { try { MessageDigest digest = MessageDigest.getInstance("md5"); byte[] result = digest.digest(text....
    /**
    	 * MD5加密
    	 * @return 32位小写字符串
    	 */
    	public static String encode(String text) {
    		try {
    			MessageDigest digest = MessageDigest.getInstance("md5");
    			byte[] result = digest.digest(text.getBytes());
    			StringBuilder sb = new StringBuilder();
    			for (byte b : result) {
    				int number = b & 0xff;
    				String hex = Integer.toHexString(number);
    				if (hex.length() == 1) {
    					sb.append("0" + hex);
    				} else {
    					sb.append(hex);
    				}
    			}
    			return sb.toString();
    		} catch (NoSuchAlgorithmException e) {
    			log.error("MD5加密错误", e);
    		}
    		return "";
    	}

    展开全文
  • Java实现MD5加密工具

    2021-03-03 10:26:48
    public final class MD5 { public static String encrypt(String strSrc) { try { char hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; byte[] bytes = ...
    public final class MD5 {
    
        public static String encrypt(String strSrc) {
            try {
                char hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
                        '9', 'a', 'b', 'c', 'd', 'e', 'f' };
                byte[] bytes = strSrc.getBytes();
                MessageDigest md = MessageDigest.getInstance("MD5");
                md.update(bytes);
                bytes = md.digest();
                int j = bytes.length;
                char[] chars = new char[j * 2];
                int k = 0;
                for (int i = 0; i < bytes.length; i++) {
                    byte b = bytes[i];
                    chars[k++] = hexChars[b >>> 4 & 0xf];
                    chars[k++] = hexChars[b & 0xf];
                }
                return new String(chars);
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
                throw new RuntimeException("MD5加密出错!!+" + e);
            }
        }
    
        public static void main(String[] args) {
            System.out.println(MD5.encrypt("111111"));
        }
    
    }
    
    展开全文
  • java md5加密可以使用第三方的DigestUtils加密工具类,也可以使用原生的md5加密方法,如果是md5第三方加密的话,需要引入maven jar包,如下。commons-codeccommons-codec${commons-codec.version}下面是写在main方法...

    java md5加密可以使用第三方的DigestUtils加密工具类,也可以使用原生的md5加密方法,如果是md5第三方加密的话,需要引入maven jar包,如下。

    commons-codec

    commons-codec

    ${commons-codec.version}

    下面是写在main方法中的示例代码,md5加密方法非常简单,如下,也需要自己稍微改一下。import java.security.MessageDigest;

    import java.security.NoSuchAlgorithmException;

    import org.apache.commons.codec.digest.DigestUtils;

    public class ArrayDemo {

    public static void main(String[] args) throws NoSuchAlgorithmException {

    String str = "hello world";

    //java原生方法

    MessageDigest md = MessageDigest.getInstance("MD5");

    byte[] arr = md.digest(str.getBytes());

    String md5Str = md5ToString(arr);

    System.out.println(md5Str);

    //第三方加密方法

    byte[] md5 = DigestUtils.md5(str);

    String md5Str2 =  md5ToString(md5);

    System.out.println(md5Str2);

    //第三方直接返回md5 16进制字符串的加密方法

    String md5Str3 = DigestUtils.md5Hex(str.getBytes());

    System.out.println(md5Str3);

    }

    //将md5数组转化为16进制字符串

    public static String md5ToString(byte[] md5){

    StringBuilder sb = new StringBuilder();

    for (int i = 0; i 

    int temp = md5[i] & 0Xff;

    String hexString = Integer.toHexString(temp);

    if (hexString.length() 

    sb.append("0").append(hexString);

    } else {

    sb.append(hexString);

    }

    }

    return sb.toString();

    }

    }

    原生的md5加密方法是java自带的,在java.security包中,而第三方加密方法在org.apache.commons.codec.digest包中,需要引入maven jar包。

    上面的代码输出字符串结果都是一样的,如下。

    5eb63bbbe01eeed093cb22bb8f5acdc3

    5eb63bbbe01eeed093cb22bb8f5acdc3

    5eb63bbbe01eeed093cb22bb8f5acdc3

    来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/java/415.html

    展开全文
  • Java实现MD5加密的方式 MD5加密是一种常见的加密方式,经常用在保存用户密码和关键信息上。 1、什么是MD5  MD5加密全称是Message-Digest Algoorithm 5(信息-摘要算法),它对信息进行摘要采集,再通过一定的位...
  • 上一篇介绍了MD5加密算法,之前写的代码有些冗余,而且可读性很差。今天把对文本数据的加密,以及获取文件的md5值做一个封装类。代码如下:package com.itydl.utils;import java.io.File;import java.io....
  • wemall-mobile是基于WeMall的android app商城,...本文分享android开发MD5加密工具类主要代码,供技术员参考学习。package com.gzcivil.utils;import java.io.UnsupportedEncodingException;import java.security.M...
  • MD5加密工具

    2021-07-10 22:08:18
    MD5加密工具Md5Utils md5加密不可逆,可对md5加密后的字符串再进行加密及解密 public class Md5Utils { /** * 带秘钥加密 * * @param text 明文 * @param key 密钥 * @return 密文 */ public static ...
  • md5加密工具

    2021-01-16 21:54:25
    MD5加密工具类 /** * MD5加密 * * @param source 明文 * @return 加密后的字符串 */ public static String md5(String source) { // 1.对明文进行判断 if (source == null || source.length() == 0) { // ...
  • 一点睛MD5加密算法虽然已经过时,但在一些安全性不太高的行业仍然广受欢迎,在此提供一个MD5加密工具类。二代码package com.imooc.demo.common.util;import org.apache.commons.lang3.StringUtils;import org.slf4j....
  • MD5加密工具MD5

    2021-04-20 10:33:09
    传入字符串可直接返回加密结果 ... import java.security.MessageDigest;...public class MD5 { private final static String[] hexDigits = { "0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f
  • python实现MD5加密工具

    万次阅读 2020-12-22 15:15:28
    学习python的过程中,一边学习一遍练习,突然学到了GUI图形界面开发的时候,偶然发现一个实用的工具,可以把字符串加密MD5值,在这里记录一下,代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- from...
  • 【java】MD5加密工具

    2021-03-06 18:44:21
    MD5:/*** 对指定字段进行MD5加密* 参数为空或发生异常都会返回 @PASE—_FAIL (-1)* @author ZX* @date 2018年09月10日16:03:07* return String* eg:* 124756EF340DAF80196B4124686D651C* A0C83707B5438E080655DF...
  • JAVA之MD5加密工具

    2021-09-18 08:13:31
    JAVA之MD5加密工具类: MD5Utils public class Md5Utils { public static String md5(String str){ try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(str.getBytes("utf-8")); byte[]...
  • MD5加密工具类!!!

    2021-07-19 17:55:04
    * 通过MD5算法加密字符 * @param msg * @return java.lang.String */ public static String encode(String msg){ try { MessageDigest messageDigest=MessageDigest.getInstance("md5"); return ...
  • 软件功能:将明文字符串加密成密文,并通过在线网站进行解密验证 掌握技术: 1、对MFC框架的熟悉和基本控件(编辑框、静态框和按钮)的使用 ...3、MD5加密算法 效果图: 通过cmd5在线网站来验证是否加密正确: ...
  • MD5加密工具模板

    2021-01-18 19:37:01
    public class md5Util { private static final String slat = "&%5123***&&%%$$#@"; public static String getMD5(String str) { String base = str +"/"+slat; String md5 = DigestUtils.md5...
  • 1.MD5工具类packagecom.ssm.util;importjava.security.MessageDigest;public classMD5Util {//将字节数组转成十六进制字符串private static String byteArrayToHexString(byteb[]) {StringBuffer resultSb= ...
  • 本文实例讲述了Android实现简单MD5加密的方法。分享给大家供大家参考,具体如下:网上关于android下MD5加密的资料很多,但是测试了下总是跟网站的md5加密不一样, 后来才知道是编码方式不对,于是就自己写了一个。...
  • package org.hnpmi.sanshi.baseinfo.datamonitor.entity;import java.security....public class MD5Test {public static void main(String[] args) {System.out.println(MD5("430103198112050012"));}/**...
  • md5加密法核心源码package com.study.luoki;import android.app.*;import android.os.*;import android.widget.*;import android.view.View.*;import android.view.*;import hxm.tool.*;import android.content.*;//...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,443
精华内容 27,777
关键字:

md5加密工具