一段对16进制字符串进行异或的代码。
public String xorHex(String a, String b) { char[] chars = new char[a.length()]; for (int i = 0; i < chars.length; i++) { chars[i] = toHex(fromHex(a.charAt(i)) ^ fromHex(b.charAt(i))); } return new String(chars); } private static int fromHex(char c) { if (c >= '0' && c <= '9') { return c - '0'; } if (c >= 'A' && c <= 'F') { return c - 'A' + 10; } if (c >= 'a' && c <= 'f') { return c - 'a' + 10; } throw new IllegalArgumentException(); } private char toHex(int nybble) { if (nybble < 0 || nybble > 15) { throw new IllegalArgumentException(); } return "0123456789ABCDEF".charAt(nybble); }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15945.html