Java常用的一些工具方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39135287/article/details/80468324

密码加密工具方法(md5、sha-1以及md5和sha-1的二次加密)

// -----------------------------密码加密---------------------------------------
	/**
	 * 二次加密,应该破解不了了吧?
	 * 
	 * @param inputText
	 * @return
	 */
	public static String md5AndSha(String inputText) {
		return sha(md5(inputText));
	}

	/**
	 * md5加密
	 * 
	 * @param inputText
	 * @return
	 */
	public static String md5(String inputText) {
		return encrypt(inputText, "md5");
	}

	/**
	 * sha-1加密
	 * 
	 * @param inputText
	 * @return
	 */
	public static String sha(String inputText) {
		return encrypt(inputText, "sha-1");
	}

	/**
	 * md5或者sha-1加密
	 * 
	 * @param inputText
	 *            要加密的内容
	 * @param algorithmName
	 *            加密算法名称:md5或者sha-1,不区分大小写
	 * @return
	 */
	private static String encrypt(String inputText, String algorithmName) {
		if (inputText == null || "".equals(inputText.trim())) {
			throw new IllegalArgumentException("请输入要加密的内容");
		}
		if (algorithmName == null || "".equals(algorithmName.trim())) {
			algorithmName = "md5";
		}
		String encryptText = null;
		try {
			MessageDigest m = MessageDigest.getInstance(algorithmName);
			m.update(inputText.getBytes("UTF8"));
			byte s[] = m.digest();
			return hex(s);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return encryptText;
	}

	/**
	 * 返回十六进制字符串
	 * 
	 * @param arr
	 * @return
	 */
	private static String hex(byte[] arr) {
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < arr.length; ++i) {
			sb.append(Integer.toHexString((arr[i] & 0xFF) | 0x100).substring(1, 3));
		}
		return sb.toString();
	}

获取全球id方法

// ----------------------------------------------获取全球id

	public static String getUUID() {
		try {
			UUID randomUUID = UUID.randomUUID();
			return randomUUID.toString().replaceAll("-", "");
		} catch (Exception e) {
			throw new RuntimeException(e);
		} finally {

		}
	}

String类型转换成Date类型方法

// ----------------------------------------------String类型转换成Date类型

	public static Date stringToDate(String str) {

		// 获得SimpleDateFormat类,我们转换为yyyy-MM-dd的时间格式
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		Date date = null;
		try {
			// 使用SimpleDateFormat的parse()方法生成Date
			date = simpleDateFormat.parse(str);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return date;
	}

Date类型转换成String类型方法

// ----------------------------------------------Date类型转换成String类型
	public static String dateToString(Date date) {

		// 获得SimpleDateFormat类
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		// 返回字符串
		return simpleDateFormat.format(date);

	}

Date类型加上指定天数,获得相应的日期

// ---------------------------------------Date类型加上指定天数,获得相应的日期

	public static Date dateAddDay(Date date, Integer day) {

		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + day);
		return calendar.getTime();
	}

Date类型比较大小

// ------------------------------------------Date类型比较大小
	public static Integer dateCompareToDate(Date date, Date anotherDate) {

		// 方法一
		// 0:表示相等 1:表示date大于anotherDate -1:表示date小于anotherDate
		Integer flage = date.compareTo(anotherDate);
		return flage;

		// 方法二
		// true:表示date大于anotherDate false:表示date小于anotherDate
		// Boolean temp = date.getTime() > anotherDate.getTime();
		// return temp;

	}

自动生成由10位数字组成的账号

public static String getAccountNumber() {

		Random random = new Random();
		String str = "";
		  while (str.length() < 10) {
			int num = random.nextInt(10);
			 if (!(str.length() == 0 && num == 0)) {     //首位数字不能为0, 当字符串长度为0,表示即将添加首位数字
				str += num;
			    }
			}

		return str;
	}

猜你喜欢

转载自blog.csdn.net/qq_39135287/article/details/80468324