AiFuelingApplicationTests.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package com.tokheim.aifueling;
  2. import cn.hutool.core.convert.Convert;
  3. import com.tokheim.aifueling.utils.ByteArrayUtils;
  4. import com.tokheim.aifueling.utils.SM4Utils;
  5. import org.junit.jupiter.api.Test;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import java.util.ArrayList;
  8. import java.util.Arrays;
  9. import java.util.List;
  10. @SpringBootTest
  11. class AiFuelingApplicationTests {
  12. @Test
  13. void testSm4Encryption() {
  14. byte[] bytes = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,0x11,0x12};
  15. try {
  16. byte[] resultBytes = SM4Utils.encrypt(bytes);
  17. System.out.println(Convert.toHex(resultBytes));
  18. } catch (Exception e) {
  19. throw new RuntimeException(e);
  20. }
  21. }
  22. @Test
  23. void testSm4Decryption() {
  24. byte[] bytes = {0x24,0x72,0x3f,0x04,0x24,0x1f, (byte) 0x88, (byte) 0xc4, (byte) 0xab,0x34,0x62, (byte) 0xf2,
  25. (byte) 0xbc, (byte) 0x83, (byte) 0xac, (byte) 0x99, (byte) 0xce, 0x34,0x73, (byte) 0x9b, (byte) 0xaa,
  26. 0x72, (byte) 0xdf,0x77,0x68, (byte) 0xb0,0x35, (byte) 0xa7,0x2e,0x0e,0x57};
  27. try {
  28. byte[] resultbytes = SM4Utils.decrypt(bytes);
  29. System.out.println(Convert.toHex(resultbytes));
  30. } catch (Exception e) {
  31. throw new RuntimeException(e);
  32. }
  33. }
  34. @Test
  35. void testFindSubIndex(){
  36. byte[] source = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
  37. byte[] target = {0x02,0x03};
  38. System.out.println(ByteArrayUtils.findSubarrayIndex(source,target));
  39. byte[] source2 = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
  40. byte[] target2 = {0x10,0x24};
  41. System.out.println(ByteArrayUtils.findSubarrayIndex(source2,target2));
  42. byte[] source3 = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
  43. byte[] target3 = {0x02,0x03};
  44. System.out.println(ByteArrayUtils.findSubarrayIndex(source3,target3));
  45. }
  46. @Test
  47. void testBytes2Hex(){
  48. byte[] bytes = {0x12,0x01,0x10, (byte) 0xaa, (byte) 0xff,0x00,0x1a,0x11, (byte) 0xab};
  49. String s = ByteArrayUtils.bytesToHexString(bytes);
  50. System.out.println(s);
  51. }
  52. @Test
  53. void testDecimalStrToBCD(){
  54. String amount1 = "123";
  55. String amount1_ = "1,23";
  56. String amount2 = "123.00";
  57. String amount2_ = "1,23.00";
  58. String amount3 = "123.000";
  59. String amount3_ = "1,23.000";
  60. System.out.println(amount1 + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount1)));
  61. System.out.println(amount1_ + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount1_)));
  62. System.out.println(amount2 + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount2)));
  63. System.out.println(amount2_ + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount2_)));
  64. System.out.println(amount3 + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount3)));
  65. System.out.println(amount3_ + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount3_)));
  66. String amount4 = "999999";
  67. String amount4_ = "999,999";
  68. String amount5 = "999999.00";
  69. String amount5_ = "999,999.00";
  70. String amount6 = "999999.000";
  71. String amount6_ = "999,999.000";
  72. System.out.println(amount4 + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount4)));
  73. System.out.println(amount4_ + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount4_)));
  74. System.out.println(amount5 + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount5)));
  75. System.out.println(amount5_ + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount5_)));
  76. System.out.println(amount6 + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount6)));
  77. System.out.println(amount6_ + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount6_)));
  78. String amount7 = "1000000";
  79. String amount7_ = "1,000,000";
  80. String amount8 = "1000000.00";
  81. String amount8_ = "1,000,000.00";
  82. String amount9 = "1000000.000";
  83. String amount9_ = "1,000,000.000";
  84. System.out.println(amount7 + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount7)));
  85. System.out.println(amount7_ + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount7_)));
  86. System.out.println(amount8 + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount8)));
  87. System.out.println(amount8_ + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount8_)));
  88. System.out.println(amount9 + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount9)));
  89. System.out.println(amount9_ + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount9_)));
  90. String amount10 = "asdad";
  91. System.out.println(amount10 + "=>" + ByteArrayUtils.bytesToHexString(ByteArrayUtils.decimalStrToBCD(amount10)));
  92. }
  93. @Test
  94. void testInt2Bytes() {
  95. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(0)));
  96. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(1)));
  97. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(9)));
  98. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(10)));
  99. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(11)));
  100. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(99)));
  101. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(100)));
  102. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(101)));
  103. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(4080)));
  104. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(4081)));
  105. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(4082)));
  106. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(65534)));
  107. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(65535)));
  108. System.out.println(ByteArrayUtils.bytesToHexString(ByteArrayUtils.intToTwoByteArray(65536)));
  109. }
  110. }