org.apache.shiro.codec.Hex.toDigit()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(3.0k)|赞(0)|评价(0)|浏览(156)

本文整理了Java中org.apache.shiro.codec.Hex.toDigit()方法的一些代码示例,展示了Hex.toDigit()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Hex.toDigit()方法的具体详情如下:
包路径:org.apache.shiro.codec.Hex
类名称:Hex
方法名:toDigit

Hex.toDigit介绍

[英]Converts a hexadecimal character to an integer.
[中]将十六进制字符转换为整数。

代码示例

代码示例来源:origin: apache/shiro

/**
 * Converts an array of characters representing hexadecimal values into an
 * array of bytes of those same values. The returned array will be half the
 * length of the passed array, as it takes two characters to represent any
 * given byte. An exception is thrown if the passed char array has an odd
 * number of elements.
 *
 * @param data An array of characters containing hexadecimal digits
 * @return A byte array containing binary data decoded from
 *         the supplied char array.
 * @throws IllegalArgumentException if an odd number or illegal of characters
 *                                  is supplied
 */
public static byte[] decode(char[] data) throws IllegalArgumentException {
  int len = data.length;
  if ((len & 0x01) != 0) {
    throw new IllegalArgumentException("Odd number of characters.");
  }
  byte[] out = new byte[len >> 1];
  // two characters form the hex value.
  for (int i = 0, j = 0; j < len; i++) {
    int f = toDigit(data[j], j) << 4;
    j++;
    f = f | toDigit(data[j], j);
    j++;
    out[i] = (byte) (f & 0xFF);
  }
  return out;
}

代码示例来源:origin: org.apache.shiro/shiro-lang

/**
 * Converts an array of characters representing hexadecimal values into an
 * array of bytes of those same values. The returned array will be half the
 * length of the passed array, as it takes two characters to represent any
 * given byte. An exception is thrown if the passed char array has an odd
 * number of elements.
 *
 * @param data An array of characters containing hexadecimal digits
 * @return A byte array containing binary data decoded from
 *         the supplied char array.
 * @throws IllegalArgumentException if an odd number or illegal of characters
 *                                  is supplied
 */
public static byte[] decode(char[] data) throws IllegalArgumentException {
  int len = data.length;
  if ((len & 0x01) != 0) {
    throw new IllegalArgumentException("Odd number of characters.");
  }
  byte[] out = new byte[len >> 1];
  // two characters form the hex value.
  for (int i = 0, j = 0; j < len; i++) {
    int f = toDigit(data[j], j) << 4;
    j++;
    f = f | toDigit(data[j], j);
    j++;
    out[i] = (byte) (f & 0xFF);
  }
  return out;
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.shiro

/**
 * Converts an array of characters representing hexidecimal values into an
 * array of bytes of those same values. The returned array will be half the
 * length of the passed array, as it takes two characters to represent any
 * given byte. An exception is thrown if the passed char array has an odd
 * number of elements.
 *
 * @param data An array of characters containing hexidecimal digits
 * @return A byte array containing binary data decoded from
 *         the supplied char array.
 * @throws IllegalArgumentException if an odd number or illegal of characters
 *                                  is supplied
 */
public static byte[] decode(char[] data) throws IllegalArgumentException {
  int len = data.length;
  if ((len & 0x01) != 0) {
    throw new IllegalArgumentException("Odd number of characters.");
  }
  byte[] out = new byte[len >> 1];
  // two characters form the hex value.
  for (int i = 0, j = 0; j < len; i++) {
    int f = toDigit(data[j], j) << 4;
    j++;
    f = f | toDigit(data[j], j);
    j++;
    out[i] = (byte) (f & 0xFF);
  }
  return out;
}

相关文章