MD5加密

经过MD5加密后,得到16位的16进制数

	public static String getEncryptionString(String s) {
		//先将明文字符串转化为字节数组
		byte[] input = s.getBytes();
		MessageDigest md = null;
		try {
			//根据指定指定建立一个信息摘要生成器
			md = MessageDigest.getInstance("md5");
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		if(md == null) {
			return null;
		}
		//生成信息摘要
		md.update(input);
		byte[] output = md.digest();
		StringBuffer buffer = new StringBuffer();
		for(int i = 0; i < output.length; i++) {
			int value = output[i] & 0xff;//把所有的负数的字节转换为正数表示
			if(value < 16) {//判断是否超过16
				buffer.append("0");//如果低于16则高位补0
			}
			/*转换为16进制数,因为低于16的数只能有一16进制数,所以才在上面高位补0*/
			buffer.append(Integer.toHexString(value));
		}
		return buffer.toString();
	}
	
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.print("请输入密码:");
		String pass = input.next();
		String newPass = getEncryptionString(pass);
		System.out.println("您的密码经过加密后是:"+newPass);
	}

你可能感兴趣的:(MD5加密)