Gravatar是一种头像服务,在Gravator的服务器上放置了头像,那么在支持Gravatar的地方,同一个邮箱地址会显示同一个头像。
使用Gravatar头像需要获取小写的邮箱地址的16进制md5值,再以 https://www.gravatar.com/avatar/HASH 的形式向Gravator发送图片请求。
生成md5Hex值的代码(比较懒就把gravatar文档上的核心代码写下来了)
@Component public class Md5UtilImpl implements Md5Util { @Override public String hex(byte[] array) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < array.length; ++i) { sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3)); } return sb.toString(); } @Override public String md5Hex(String message) { try { MessageDigest md = MessageDigest.getInstance("MD5"); return hex(md.digest(message.getBytes("CP1252"))); } catch (NoSuchAlgorithmException e) { } catch (UnsupportedEncodingException e) { } return null; } }
然后把生成的值传递给前端。
前端可以以
<img src="https://www.gravatar.com/avatar/"+${hash} >
的形式请求图片数据