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} > 

的形式请求图片数据