Java converts byte array to Hex hexadecimal string
Convert the result array of digest to hexadecimal
Assuming the result has been obtained: resultByteArray
How to convert it to hexadecimal
public static String bytesToHex(byte[] bytes) {<!-- --> StringBuilder sb = new StringBuilder(); for (int i = 0; i < bytes. length; i ++ ) {<!-- --> sb.append(String.format("x", bytes[i])); } return sb.toString(); } String resultHex = bytesToHex(resultByteArray)
lower case
public static String hexLowerCaseFromByteArray(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789abcdef"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> sb.append(simple.charAt((b & amp;0xff)>>>4)).append(simple.charAt(b<<28>>>28)); } return sb.toString(); } String resultHex = bytesToHex(resultByteArray)
capital
public static String hexUpperCaseFromByteArray(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> sb.append(simple.charAt((b & amp;0xff)>>>4)).append(simple.charAt(b<<28>>>28)); } return sb.toString(); } String resultHex = bytesToHex(resultByteArray)
public static String hexLowerCaseFromByteArray2(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789abcdef"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> sb.append(simple.charAt((b & amp;0xff)/16)).append(simple.charAt((b & amp;0xff) )); } return sb.toString(); } \t public static String hexUpperCaseFromByteArray2(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> sb.append(simple.charAt((b & amp;0xff)/16)).append(simple.charAt((b & amp;0xff) )); } return sb.toString(); }
public static String hexLowerCaseFromByteArray3(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789abcdef"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> sb.append(simple.charAt((b & amp;255)/16)).append(simple.charAt((b & amp;255) )); } return sb.toString(); } \t public static String hexUpperCaseFromByteArray3(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> sb.append(simple.charAt((b & amp;255)/16)).append(simple.charAt((b & amp;255) )); } return sb.toString(); } \t
public static String hexLowerCaseFromByteArray4(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789abcdef"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> int i=b>=0?b:b + 256; sb.append(simple.charAt(i/16)).append(simple.charAt(i )); } return sb.toString(); } \t public static String hexUpperCaseFromByteArray4(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> int i=b>=0?b:b + 256; sb.append(simple.charAt(i/16)).append(simple.charAt(i )); } return sb.toString(); } \t
public static String hexLowerCaseFromByteArray5(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789abcdef"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> sb.append(simple.charAt(Byte.toUnsignedInt(b)/16)).append(simple.charAt(Byte.toUnsignedInt(b) )); } return sb.toString(); } \t public static String hexUpperCaseFromByteArray5(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> sb.append(simple.charAt(Byte.toUnsignedInt(b)/16)).append(simple.charAt(Byte.toUnsignedInt(b) )); } return sb.toString(); }
test
package method to convert byte array to hexadecimal string; import java.awt.FileDialog; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.FileInputStream; import java.security.MessageDigest; import javax.swing.JFrame; public class ByteArrayToHexString { \t public static String hexLowerCaseFromByteArray(byte[] byteArray) { if(byteArray==null) return null; String simple = "0123456789abcdef"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) { sb.append(simple.charAt((b & amp;0xff)>>>4)).append(simple.charAt(b<<28>>>28)); } return sb.toString(); } \t public static String hexUpperCaseFromByteArray(byte[] byteArray) { if(byteArray==null) return null; String simple = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) { sb.append(simple.charAt((b & amp;0xff)>>>4)).append(simple.charAt(b<<28>>>28)); } return sb.toString(); } \t \t public static String hexLowerCaseFromByteArray2(byte[] byteArray) { if(byteArray==null) return null; String simple = "0123456789abcdef"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) { sb.append(simple.charAt((b & amp;0xff)/16)).append(simple.charAt((b & amp;0xff) )); } return sb.toString(); } \t public static String hexUpperCaseFromByteArray2(byte[] byteArray) { if(byteArray==null) return null; String simple = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) { sb.append(simple.charAt((b & amp;0xff)/16)).append(simple.charAt((b & amp;0xff) )); } return sb.toString(); } \t \t \t public static String hexLowerCaseFromByteArray3(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789abcdef"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> sb.append(simple.charAt((b & amp;255)/16)).append(simple.charAt((b & amp;255) )); } return sb.toString(); } \t public static String hexUpperCaseFromByteArray3(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> sb.append(simple.charAt((b & amp;255)/16)).append(simple.charAt((b & amp;255) )); } return sb.toString(); } \t \t public static String hexLowerCaseFromByteArray4(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789abcdef"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> int i=b>=0?b:b + 256; sb.append(simple.charAt(i/16)).append(simple.charAt(i )); } return sb.toString(); } \t public static String hexUpperCaseFromByteArray4(byte[] byteArray) {<!-- --> if(byteArray==null) return null; String simple = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) {<!-- --> int i=b>=0?b:b + 256; sb.append(simple.charAt(i/16)).append(simple.charAt(i )); } return sb.toString(); } \t \t public static String hexLowerCaseFromByteArray5(byte[] byteArray) { if(byteArray==null) return null; String simple = "0123456789abcdef"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) { sb.append(simple.charAt(Byte.toUnsignedInt(b)/16)).append(simple.charAt(Byte.toUnsignedInt(b) )); } return sb.toString(); } \t public static String hexUpperCaseFromByteArray5(byte[] byteArray) { if(byteArray==null) return null; String simple = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArray. length*2); for(byte b : byteArray) { sb.append(simple.charAt(Byte.toUnsignedInt(b)/16)).append(simple.charAt(Byte.toUnsignedInt(b) )); } return sb.toString(); } \t public static String hexLowerCaseFromByteArray6(byte[] byteArray) { if(byteArray==null) return null; StringBuilder sb = new StringBuilder(); for (int i = 0; i < byteArray. length; i ++ ) { sb.append(String.format("x", byteArray[i])); } return sb.toString(); } \t \t public static void main(String...arguments) throws Exception{ JFrame frame = new JFrame(Thread. currentThread(). getStackTrace()[1]. getClassName()); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent ev) {System.exit(0);} }); FileDialog fDialog = new FileDialog(frame); \t\t fDialog.setVisible(true); \t\t if(fDialog.getFile()!=null) { String pathFile = fDialog.getDirectory() + fDialog.getFile(); FileInputStream is = new FileInputStream(pathFile); MessageDigest digest = MessageDigest. getInstance("SHA-256"); \t\t\t byte[] bf = new byte[10240]; int numRead; do { numRead = is. read(bf); if (numRead > 0) { digest. update(bf, 0, numRead); } } while (numRead != -1); \t\t\t is. close(); byte[] resultByteArray = digest.digest(); \t\t\t String result; \t\t\t result = hexLowerCaseFromByteArray(resultByteArray); System.out.println(result); result = hexUpperCaseFromByteArray(resultByteArray); System.out.println(result); result = hexLowerCaseFromByteArray2(resultByteArray); System.out.println(result); result = hexUpperCaseFromByteArray2(resultByteArray); System.out.println(result); result = hexLowerCaseFromByteArray3(resultByteArray); System.out.println(result); result = hexUpperCaseFromByteArray3(resultByteArray); System.out.println(result); result = hexLowerCaseFromByteArray4(resultByteArray); System.out.println(result); result = hexUpperCaseFromByteArray4(resultByteArray); System.out.println(result); result = hexLowerCaseFromByteArray5(resultByteArray); System.out.println(result); result = hexUpperCaseFromByteArray5(resultByteArray); System.out.println(result); result = hexLowerCaseFromByteArray6(resultByteArray); System.out.println(result); } \t\t System. exit(0); } \t }