summaryrefslogtreecommitdiff
path: root/src/main/java/com/keuin/kbackupfabric/util/BytesUtil.java
diff options
context:
space:
mode:
authorKeuin <[email protected]>2021-01-14 13:00:52 +0800
committerkeuin <[email protected]>2021-01-14 13:00:52 +0800
commit6baece29cccc906651331cbf8a90a06f8cee045b (patch)
tree37a33912b7b057376a4c2845738f076ac7da3467 /src/main/java/com/keuin/kbackupfabric/util/BytesUtil.java
parent5410762b8272feca0680f7a48f895714b91e3df7 (diff)
Fix a minor naming bug.
Code refactor. Improve test.
Diffstat (limited to 'src/main/java/com/keuin/kbackupfabric/util/BytesUtil.java')
-rw-r--r--src/main/java/com/keuin/kbackupfabric/util/BytesUtil.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/main/java/com/keuin/kbackupfabric/util/BytesUtil.java b/src/main/java/com/keuin/kbackupfabric/util/BytesUtil.java
index 6ded7b8..c33c028 100644
--- a/src/main/java/com/keuin/kbackupfabric/util/BytesUtil.java
+++ b/src/main/java/com/keuin/kbackupfabric/util/BytesUtil.java
@@ -4,6 +4,7 @@ import java.nio.charset.StandardCharsets;
public class BytesUtil {
private static final byte[] HEX_ARRAY = "0123456789ABCDEF".getBytes(StandardCharsets.US_ASCII);
+
public static String bytesToHex(byte[] bytes) {
byte[] hexChars = new byte[bytes.length * 2];
for (int j = 0; j < bytes.length; j++) {
@@ -11,6 +12,20 @@ public class BytesUtil {
hexChars[j * 2] = HEX_ARRAY[v >>> 4];
hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
}
- return new String(hexChars, StandardCharsets.UTF_8);
+ return new String(hexChars, StandardCharsets.UTF_8).toUpperCase();
+ }
+
+ public static byte[] hexToBytes(String s) {
+ int len = s.length();
+ if (len % 2 != 0)
+ throw new IllegalArgumentException("Invalid hex string.");
+ byte[] b = new byte[len / 2];
+ int index, v;
+ for (int i = 0; i < b.length; i++) {
+ index = i * 2;
+ v = Integer.parseInt(s.substring(index, index + 2), 16);
+ b[i] = (byte) v;
+ }
+ return b;
}
}