package com.pxene.dsp.utils; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.IOException; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** *加密工具类 */ public class EncryptionUtils { /** * 用MD5算法进行加密 * @param str 需要加密的字符串 * @return MD5加密后的结果 */ public static String encodeMD5String(String str) { return encode(str, "MD5"); } /** * 用SHA算法进行加密 * @param str 需要加密的字符串 * @return SHA加密后的结果 */ public static String encodeSHAString(String str) { return encode(str, "SHA"); } /** * 用base64算法进行加密 * @param str 需要加密的字符串 * @return base64加密后的结果 */ public static String encodeBase64String(String str) { BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(str.getBytes()); } /** * 用base64算法进行解密 * @param str 需要解密的字符串 * @return base64解密后的结果 * @throws IOException */ public static String decodeBase64String(String str) throws IOException { BASE64Decoder encoder = new BASE64Decoder(); return new String(encoder.decodeBuffer(str)); } /** * 根据传入的类型加密 * @param str * @param method * @return */ private static String encode(String str, String method) { MessageDigest md = null; String dstr = null; try { md = MessageDigest.getInstance(method); md.update(str.getBytes()); dstr = new BigInteger(1, md.digest()).toString(16); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return dstr; } /** * 方式二,同encode * @param input * @param type * @return */ public static String convertSHA1ORMD5(String input, String type) { try { MessageDigest digest = MessageDigest.getInstance(type); digest.update(input.getBytes()); byte messageDigest[] = digest.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); // 字节数组转换为 十六进制 数 for (int i = 0; i < messageDigest.length; i++) { String shaHex = Integer.toHexString(messageDigest[i] & 0xFF); if (shaHex.length() < 2) { hexString.append(0); } hexString.append(shaHex); } return hexString.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } public static void main(String[] args) throws IOException { String user = "oneadmin1we好的"; System.out.println("原始字符串 " + user); String base64Str = encodeBase64String(user); System.out.println("Base64加密 " + base64Str); System.out.println("Base64解密 " + decodeBase64String(base64Str)); System.out.println("MD5加密 " + encodeMD5String(user)); System.out.println("SHA加密 " + encodeSHAString(user)); System.out.println("方式二md5=="+convertSHA1ORMD5(user,"MD5")); System.out.println("方式二sha1=="+convertSHA1ORMD5(user,"SHA-1")); if(encodeMD5String(user).equals(convertSHA1ORMD5(user,"MD5"))){ System.out.println("md5 is equals"); } if(encodeSHAString(user).equals(convertSHA1ORMD5(user,"SHA-1"))){ System.out.println("sha1 is equals"); } } }
java常用加密方式代码实现
最新推荐文章于 2024-04-18 09:19:09 发布