LRCUtil.java 858 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package org.jeecg.modules.utils;
  2. /**
  3. * LRC校验
  4. *
  5. * @author xingshuang
  6. */
  7. public class LRCUtil {
  8. private LRCUtil() {
  9. // NOOP
  10. }
  11. /**
  12. * lrc校验值
  13. *
  14. * @param src 字节数组
  15. * @return byte校验值
  16. */
  17. public static byte lrc(byte[] src) {
  18. if (src == null || src.length == 0) {
  19. throw new IllegalArgumentException("src");
  20. }
  21. int sum = 0;
  22. for (byte b : src) {
  23. sum += b;
  24. }
  25. sum = sum % 256;
  26. sum = 256 - sum;
  27. return (byte) sum;
  28. }
  29. /**
  30. * lrc校验
  31. *
  32. * @param src 字节数组
  33. * @param target 目标比较值
  34. * @return true:一致,false:不一致
  35. */
  36. public static boolean lrc(byte[] src, byte target) {
  37. byte des = lrc(src);
  38. return des == target;
  39. }
  40. }