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