行业新闻
md5工具使用方法(修改md5值的软件推荐)
2022-02-16 19:27  浏览:6

0x01:工具类

  • md5加密工具类
  • base64加密工具类
  • Bcrypt工具类

0x02:加密测试

  • MD5加密测试
  • base64加密测试
  • SHA加密测试
  • BCrypt加密测试

0x03、工具类

1. md5加密工具类
public class MD5Utils {private static final String hexDigIts[] = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};public static String MD5Encode(String origin, String charsetname){        String resultString = null;try{            resultString = new String(origin);            MessageDigest md = MessageDigest.getInstance("MD5");if(null == charsetname || "".equals(charsetname)){                resultString = byteArrayToHexString(md.digest(resultString.getBytes()));            }else{                resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));            }        }catch (Exception e){        }return resultString;    }public static String byteArrayToHexString(byte b[]){        StringBuffer resultSb = new StringBuffer();for(int i = 0; i < b.length; i++){            resultSb.append(byteToHexString(b[i]));        }return resultSb.toString();    }public static String byteToHexString(byte b){int n = b;if(n < 0){            n += 256;        }int d1 = n / 16;int d2 = n % 16;return hexDigIts[d1] + hexDigIts[d2];    }}
2. base64加密工具类
public class Base64Util {// 字符串编码private static final String UTF_8 = "UTF-8";public static String decodeData(String inputData) {try {if (null == inputData) {return null;            }return new String(Base64.decodeBase64(inputData.getBytes(UTF_8)), UTF_8);        } catch (UnsupportedEncodingException e) {        }return null;    }public static String encodeData(String inputData) {try {if (null == inputData) {return null;            }return new String(Base64.encodeBase64(inputData.getBytes(UTF_8)), UTF_8);        } catch (UnsupportedEncodingException e) {        }return null;    }public static void main(String[] args) {        System.out.println(Base64Util.encodeData("我是中文"));String enStr = Base64Util.encodeData("我是中文");        System.out.println(Base64Util.decodeData(enStr));    }}
3. Bcrypt工具类
public class BcryptCipher {// generate salt seedprivate static final int SALT_SEED = 12;// the head fo saltprivate static final String SALT_STARTSWITH = "$2a$12";public static final String SALT_KEY = "salt";public static final String CIPHER_KEY = "cipher";public static Map<String, String> Bcrypt(final String encryptSource) {String salt = BCrypt.gensalt(SALT_SEED);    Map<String, String> bcryptResult = Bcrypt(salt, encryptSource);return bcryptResult;  }public static Map<String, String> Bcrypt(final String salt, final String encryptSource) {if (StringUtils.isBlank(encryptSource)) {throw new RuntimeException("Bcrypt encrypt input params can not be empty");    }if (StringUtils.isBlank(salt) || salt.length() != 29) {throw new RuntimeException("Salt can't be empty and length must be to 29");    }if (!salt.startsWith(SALT_STARTSWITH)) {throw new RuntimeException("Invalid salt version, salt version is $2a$12");    }String cipher = BCrypt.hashpw(encryptSource, salt);    Map<String, String> bcryptResult = new HashMap<String, String>();    bcryptResult.put(SALT_KEY, salt);    bcryptResult.put(CIPHER_KEY, cipher);return bcryptResult;  }}

0x04:加密测试

1. MD5加密测试
public class MD5Test {public static void main(String[] args) {    String string = "我是一句话";    String byteArrayToHexString = MD5Utils.byteArrayToHexString(string.getBytes());    System.out.println(byteArrayToHexString);//e68891e698afe4b880e58fa5e8af9d  }}
2. base64加密测试
public class Bast64Tester {public static void main(String[] args) {    String string = "我是一个字符串";    String encodeData = Base64Util.encodeData(string); //加密    String decodeData = Base64Util.decodeData(encodeData); //解密    System.out.println(encodeData);//5oiR5piv5LiA5Liq5a2X56ym5Liy    System.out.println(decodeData);//我是一个字符串  }}
3. SHA加密测试
public class ShaTest {public static void main(String[] args) {    String string = "我是一句话";    String sha256Crypt = Sha2Crypt.sha256Crypt(string.getBytes());    System.out.println(sha256Crypt);//$5$AFoQTeyt$TiqmobvcQXjXaAQMYosAAO4KI8LfigZMGHzq.Dlp4NC  }}
4. BCrypt加密测试
public class BCryptTest {public static void main(String[] args