1
0
Fork 0

몇개 코드 더 수정

This commit is contained in:
Sangbum Kim 2018-08-22 00:48:20 +09:00
parent 453e422cde
commit e9151c26d1
2 changed files with 142 additions and 0 deletions

View File

@ -0,0 +1,99 @@
public class ByteUtils {
public static int fromBytesAsInt(byte[] i) {
return
(((int) i[3] & 0xFF) << 24) |
(((int) i[2] & 0xFF) << 16) |
(((int) i[1] & 0xFF) << 8) |
(((int) i[0] & 0xFF));
}
public static long fromBytesAsLong(byte[] i) {
return
(((long) i[0] & 0xFF) << 56) |
(((long) i[1] & 0xFF) << 48) |
(((long) i[2] & 0xFF) << 40) |
(((long) i[3] & 0xFF) << 32) |
(((long) i[4] & 0xFF) << 24) |
(((long) i[5] & 0xFF) << 16) |
(((long) i[6] & 0xFF) << 8) |
(((long) i[7] & 0xFF));
}
public static long fromBytesAsLongMost(byte[] i) {
return
(((long) i[0] & 0xFF) << 56) |
(((long) i[1] & 0xFF) << 48) |
(((long) i[2] & 0xFF) << 40) |
(((long) i[3] & 0xFF) << 32) |
(((long) i[4] & 0xFF) << 24) |
(((long) i[5] & 0xFF) << 16) |
(((long) i[6] & 0xFF) << 8) |
(((long) i[7] & 0xFF));
}
public static long fromBytesAsLongLast(byte[] i) {
return
(((long) i[8] & 0xFF) << 56) |
(((long) i[9] & 0xFF) << 48) |
(((long) i[10] & 0xFF) << 40) |
(((long) i[11] & 0xFF) << 32) |
(((long) i[12] & 0xFF) << 24) |
(((long) i[13] & 0xFF) << 16) |
(((long) i[14] & 0xFF) << 8) |
(((long) i[15] & 0xFF));
}
public static byte[] toBytes(int i) {
byte[] result = new byte[4];
result[0] = (byte) (i >> 24);
result[1] = (byte) (i >> 16);
result[2] = (byte) (i >> 8);
result[3] = (byte) (i /*>> 0*/);
return result;
}
public static byte[] toBytes(long i) {
byte[] result = new byte[8];
result[0] = (byte) (i >> 56);
result[1] = (byte) (i >> 48);
result[2] = (byte) (i >> 40);
result[3] = (byte) (i >> 32);
result[4] = (byte) (i >> 24);
result[5] = (byte) (i >> 16);
result[6] = (byte) (i >> 8);
result[7] = (byte) (i /*>> 0*/);
return result;
}
public static byte[] toBytes(long most, long last) {
byte[] result = new byte[16];
result[0] = (byte) (most >> 56);
result[1] = (byte) (most >> 48);
result[2] = (byte) (most >> 40);
result[3] = (byte) (most >> 32);
result[4] = (byte) (most >> 24);
result[5] = (byte) (most >> 16);
result[6] = (byte) (most >> 8);
result[7] = (byte) (most /*>> 0*/);
result[8] = (byte) (last >> 56);
result[9] = (byte) (last >> 48);
result[10] = (byte) (last >> 40);
result[11] = (byte) (last >> 32);
result[12] = (byte) (last >> 24);
result[13] = (byte) (last >> 16);
result[14] = (byte) (last >> 8);
result[15] = (byte) (last /*>> 0*/);
return result;
}
}

View File

@ -1,5 +1,7 @@
import com.fasterxml.uuid.Generators;
import org.bouncycastle.util.encoders.Hex;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.LongBuffer;
@ -223,5 +225,46 @@ public class UUIDUtil {
return null;
}
}
public static String UUIDToHex(final UUID orgUUID) {
if (orgUUID == null) {
return null;
}
try {
final long most = orgUUID.getMostSignificantBits();
final long last = orgUUID.getLeastSignificantBits();
return Hex.toHexString(ByteUtils.toBytes(most, last));
} catch (IllegalArgumentException iae) {
return null;
}
}
public static UUID HexToUUID(final String hexString) {
if (hexString == null) {
return null;
}
try {
final ByteBuffer sourceBuffer = ByteBuffer.allocateDirect(16);
sourceBuffer.clear();
sourceBuffer.put(Hex.decode(hexString));
sourceBuffer.flip();
return new UUID(sourceBuffer.getLong(), sourceBuffer.getLong());
} catch (IllegalArgumentException iae) {
return null;
}
}
public static void main(String[] args) {
final UUID uuid = UUIDUtil.generateUUIDRandomly();
final String generatedId = UUIDUtil.UUIDToHex(uuid);
System.out.println(generatedId);
}
}