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} >
的形式请求图片数据