From da8f72d2db0bbfc221a881d5aa31065cd5717043 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 19 十二月 2023 14:56:01 +0800
Subject: [PATCH] 修改密码登录相关
---
easysocket/src/main/java/com/easysocket/utils/HexUtil.java | 275 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 275 insertions(+), 0 deletions(-)
diff --git a/easysocket/src/main/java/com/easysocket/utils/HexUtil.java b/easysocket/src/main/java/com/easysocket/utils/HexUtil.java
new file mode 100644
index 0000000..a92049b
--- /dev/null
+++ b/easysocket/src/main/java/com/easysocket/utils/HexUtil.java
@@ -0,0 +1,275 @@
+package com.easysocket.utils;
+
+import java.math.BigInteger;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Copyright (C), 2022,
+ * Author: zuo
+ * Date: 2022/3/9 14:55
+ * Description:
+ */
+public class HexUtil {
+
+
+ /**
+ * hex瀛楃涓茶浆byte鏁扮粍
+ *
+ * @param inHex 寰呰浆鎹㈢殑Hex瀛楃涓�
+ * @return 杞崲鍚庣殑byte鏁扮粍缁撴灉
+ */
+ public static byte[] hexToByteArray(String inHex) {
+ int hexlen = inHex.length();
+ byte[] result;
+ if (hexlen % 2 == 1) {
+ //濂囨暟
+ hexlen++;
+ result = new byte[(hexlen / 2)];
+ inHex = "0" + inHex;
+ } else {
+ //鍋舵暟
+ result = new byte[(hexlen / 2)];
+ }
+ int j = 0;
+ for (int i = 0; i < hexlen; i += 2) {
+ result[j] = hexToByte(inHex.substring(i, i + 2));
+ j++;
+ }
+ return result;
+ }
+
+
+ /**
+ * Hex瀛楃涓茶浆byte
+ *
+ * @param inHex 寰呰浆鎹㈢殑Hex瀛楃涓�
+ * @return 杞崲鍚庣殑byte
+ */
+ public static byte hexToByte(String inHex) {
+ return (byte) Integer.parseInt(inHex, 16);
+ }
+
+ /**
+ * 瀛楄妭杞崄鍏繘鍒�
+ *
+ * @param b 闇�瑕佽繘琛岃浆鎹㈢殑byte瀛楄妭
+ * @return 杞崲鍚庣殑Hex瀛楃涓�
+ */
+ public static String byteToHex(byte b) {
+ String hex = Integer.toHexString(b & 0xFF);
+ if (hex.length() < 2) {
+ hex = "0" + hex;
+ }
+ return hex.toUpperCase();
+ }
+
+
+ /**
+ * 瀛楄妭鏁扮粍杞�16杩涘埗
+ *
+ * @param bytes 闇�瑕佽浆鎹㈢殑byte鏁扮粍
+ * @return 杞崲鍚庣殑Hex瀛楃涓�
+ */
+ public static String bytesToHex(byte[] bytes) {
+ try {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < bytes.length; i++) {
+ String hex = Integer.toHexString(bytes[i] & 0xFF);
+ if (hex.length() < 2) {
+ sb.append(0);
+ }
+ sb.append(hex);
+ }
+ return sb.toString();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+
+ public static String byteArrayToHexString(byte[] byteArray) {
+ StringBuilder hexString = new StringBuilder();
+ for (byte b : byteArray) {
+ // 灏嗗瓧鑺傝浆鎹负鏃犵鍙锋暣鏁�
+ int unsignedInt = b & 0xff;
+ // 灏嗘棤绗﹀彿鏁存暟杞崲涓�16杩涘埗瀛楃涓�
+ String hex = Integer.toHexString(unsignedInt);
+ // 濡傛灉瀛楃涓查暱搴﹀皬浜�2锛屽湪鍓嶉潰琛�0
+ if (hex.length() < 2) {
+ hex = "0" + hex;
+ }
+ hexString.append(hex);
+ }
+ return hexString.toString();
+ }
+
+ /**
+ * 瀛楄妭鏁扮粍杞�16杩涘埗 涓嶅湪鏈熬娣诲姞0
+ *
+ * @param bytes 闇�瑕佽浆鎹㈢殑byte鏁扮粍
+ * @return 杞崲鍚庣殑Hex瀛楃涓�
+ */
+ public static String bytesToHexNoAddZero(byte[] bytes) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < bytes.length; i++) {
+ String hex = Integer.toHexString(bytes[i] & 0xFF);
+ sb.append(hex);
+ }
+ return sb.toString();
+ }
+
+
+ /**
+ * 灏� 4瀛楄妭鐨�16杩涘埗瀛楃涓诧紝杞崲涓�32浣嶅甫绗﹀彿鐨勫崄杩涘埗娴偣鍨�
+ *
+ * @param str 4瀛楄妭 16杩涘埗瀛楃
+ * @return
+ */
+ public static float hexToFloat(String str) {
+ return Float.intBitsToFloat(new BigInteger(str, 16).intValue());
+ }
+
+ /**
+ * 灏嗗甫绗﹀彿鐨�32浣嶆诞鐐规暟瑁呮崲涓�16杩涘埗
+ *
+ * @param value
+ * @return
+ */
+ public static String folatToHexString(Float value) {
+ return Integer.toHexString(Float.floatToIntBits(value));
+ }
+
+ /**
+ * 鍗佽繘鍒惰浆16杩涘埗
+ *
+ * @param number
+ * @return
+ */
+ public static String get10to16(int number) {
+ return Integer.toHexString(number);
+ }
+
+ /**
+ * 鍗佽繘鍒惰浆16杩涘埗 琛ラ綈鍋舵暟 楂樹綅鍦ㄥ墠浣庝綅鍦ㄥ悗
+ *
+ * @param number
+ * @return
+ */
+ public static String get10to16CompleteHex(int number) {
+ String hex = Integer.toHexString(number);
+ if (hex.length() % 2 == 0) {
+ return hex;
+ } else {
+ return "0" + hex;
+ }
+ }
+
+ /**
+ * 鍗佽繘鍒惰浆16杩涘埗浣庝綅鍦ㄥ墠楂樹綅鍦ㄥ悗
+ *
+ * @param number 鍗佽繘鍒舵暟
+ * @param length 琛ヨ冻澶氬皯浣�
+ * @return
+ */
+ public static String get10to16LowHigh(int number, int length) {
+ String str = "";
+ try {
+ str = Integer.toHexString(number);
+ str = getHexToLenght(str, length);
+ str = spaceHex(str);
+ str = HighLowHex(str);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return str;
+ }
+
+ /**
+ * 16杩涘埗杞�10杩涘埗楂樹綆浣嶈浆鎹�
+ *
+ * @param hex
+ * @return
+ */
+ public static int get16to10LowHigh(String hex) {
+ try {
+ String str = "";
+ str = spaceHex(hex);
+ str = HighLowHex(str);
+ return Integer.parseInt(str, 16);
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ }
+ return 0;
+ }
+
+
+ /**
+ * 杩斿洖鐗瑰畾闀垮害鐨�16杩涘埗瀛楃涓�
+ *
+ * @param data
+ * @param length
+ * @return
+ */
+ public static String getHexToLenght(String data, int length) {
+ StringBuffer stringBuilder = new StringBuffer(data);
+ for (int i = 0; i < length - data.length(); i++) {
+ stringBuilder.insert(0, "0");
+ }
+ return stringBuilder.toString();
+ }
+
+ /**
+ * 鍗佸叚杩涘埗鏁伴殧绌轰綅
+ *
+ * @param str
+ * @return
+ */
+ public static String spaceHex(String str) {
+ char[] array = str.toCharArray();
+ if (str.length() <= 2) return str;
+ StringBuffer bufferHex = new StringBuffer();
+ for (int i = 0; i < array.length; i++) {
+ int start = i + 1;
+ if (start % 2 == 0) {
+ bufferHex.append(array[i]).append(" ");
+ } else {
+ bufferHex.append(array[i]);
+ }
+ }
+ return bufferHex.toString();
+ }
+
+ /**
+ * 楂樹綅16杩涘埗杞綆浣�
+ *
+ * @param str
+ * @return
+ */
+ private static String HighLowHex(String str) {
+ if (str.trim().length() <= 2) return str;
+ List<String> list = Arrays.asList(str.split(" "));
+ Collections.reverse(list);
+ StringBuffer stringBuffer = new StringBuffer();
+ for (String string : list) {
+ stringBuffer.append(string);
+ }
+ return stringBuffer.toString();
+ }
+
+ /**
+ * @param hex
+ * @return
+ */
+ public static int get16to10(String hex) {
+ int x = 0;
+ try {
+ x = Integer.parseInt(hex, 16);
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ }
+ return x;
+ }
+}
--
Gitblit v1.8.0