项目中遇到一个问题,需要使用MD5加密后将字符串上传,尝试了几次发现总是返回签名错误。网上查了很久以后发现
MD5加密后的byte[]数组不能直接toString()
需要将byte[]每一位都转成16进制输出,代码如下
private static String byteToString(String bs) {
StringBuilder stringBuilder = new StringBuilder();
try {
byte[] md5s = MessageDigest.getInstance("MD5").digest(bs.getBytes("utf-8"));
for (byte b : md5s) {
stringBuilder.append(String.format("%02x", new Integer(b & <