申请Gravatar头像的教程可以点 创建gravatar头像详细教程 是,主只要该网站配置了 Email 转 Gravatar 代码,输入邮箱就能获得你在 Gravatar  设置的头像,全球通用哦。

下面介绍将 Email 地址 转成 Gravatar 头像的图片地址。

很简单的,做个笔记。

观察 Gravatar 图片的URL

我们先找个 Gravatar 头像,右键查看图片地址:

http://www.gravatar.com/avatar/01459f970ce17cd9e1e783160ecc951c?s=32

上面的 01459f970ce17cd9e1e783160ecc951c 其实是 admin@liuyanzhao.com 的MD5值

然后我们就不难知道具体实现啦。

PHP 是这样做的

  1. $userEmail = "admin@liuyanzhao.com";
  2. $userGravatar = 'http://www.gravatar.com/avatar/' . md5($userEmail) . '?s=32';

最终的 $userGravatar 就是图片地址了。看来很简单啦。

Java 实现

同样,主要是一个字符串转成 md5 的操作。

  1. package com.liuyanzhao.blog.util;
  2. import java.security.MessageDigest;
  3. import java.security.NoSuchAlgorithmException;
  4. /**
  5. * 常用的方法
  6. * Created by 言曌 on 2017/8/24.
  7. */
  8. public class Functions {
  9. //将字符串转为MD5
  10. public static String strToMd5(String str) {
  11. String md5Str = null;
  12. if (str != null && str.length() != 0) {
  13. try {
  14. MessageDigest md = MessageDigest.getInstance("MD5");
  15. md.update(str.getBytes());
  16. byte b[] = md.digest();
  17. int i;
  18. StringBuffer buf = new StringBuffer("");
  19. for (int offset = 0; offset < b.length; offset++) {
  20. i = b[offset];
  21. if (i < 0)
  22. i += 256;
  23. if (i < 16)
  24. buf.append("0");
  25. buf.append(Integer.toHexString(i));
  26. }
  27. //32位
  28. md5Str = buf.toString();
  29. //16位
  30. //  md5Str = buf.toString().substring(8, 24);
  31. } catch (NoSuchAlgorithmException e) {
  32. e.printStackTrace();
  33. }
  34. }
  35. return md5Str;
  36. }
  37. //根据email获取gravatar头像
  38. public static String getGravatar(String email) {
  39. String emailMd5 = strToMd5(email);
  40. //设置图片大小32px
  41. String avatar = "http://www.gravatar.com/avatar/"+emailMd5+"?s=32";
  42. return avatar;
  43. }
  44. }

最终我们添加几条评论,在后台评论区域可以看到带有Gravatar头像评论记录。

Java获取字符串的MD5值和根据邮箱获取Gravatar头像相关推荐

  1. JAVA 获取文件的MD5值大小以及常见的工具类

    1 /** 2 * 获取文件的MD5值大小 3 * 4 * @param file 5 * 文件对象 6 * @return 7 */ 8 public static String getMD5(Fi ...

  2. c++判断文件是否被修改(获取文件的MD5值)

    需求分析 因为项目中需要检测一个文件是否被篡改,我采用了监测文件的MD5值. MD5,简单地来说,就是文件的"指纹".如果原始文件被修改了,那么MD5值也就会跟着发生变化,所以我们 ...

  3. 最简单之获取app签名md5值

    网上教的大多数获取app签名md5值的方法都是通过生成jks还得打开黑窗口,有点小麻烦所以我用代码写了一个获取签名的方法 /*** MD5加密* @param byteStr 需要加密的内容* @re ...

  4. golang 获取文件的MD5值

    golang 获取文件的MD5值 调用下面的函数(输入参数是文件的路径,如/home/user/test.txt),即可获取指定文件的MD5值. func GetFileMD5(pathName st ...

  5. java 获取md5值报错_java获取文件的MD5值

    package com.sichang.util; import java.io.File; import java.io.FileInputStream; import java.math.BigI ...

  6. java excel md5_EXCEL VBA计算带汉字的字符串的MD5值(VBA转UTF-8保存)

    操作思路: 1.使用 ADODB.stream 把字符串转换为UFT-8的编码集存储到文件 AA 2.使用调用windows命令行CertUtil -hashfile c:\11\AA md5 对文件 ...

  7. Java计算大文件md5值

    普通方式: JAVA自带的commons-codec包提供的获取16进制MD5值的方法 DigestUtils.md5Hex(new FileInputStream(path)); 但是对于大文件效率 ...

  8. (转)Python 用hashlib求中文字符串的MD5值

    使用过hashlib库的朋友想必都遇到过以下的错误吧:"Unicode-objects must be encoded before hashing",意思是在进行md5哈希运算前 ...

  9. Python 用hashlib求中文字符串的MD5值

    From: http://blog.csdn.net/haungrui/article/details/6959340 使用过hashlib库的朋友想必都遇到过以下的错误吧:"Unicode ...

  10. Android获取String的MD5值

    /*** 将字符串转成MD5值* * @param string* @return*/public static String stringToMD5(String string) {byte[] h ...

最新文章

  1. 远程ubuntu虚拟机Tensorflow搭建 - 1 SSH连接
  2. 通过shell例子来学习循环结构的语法
  3. webstrom 中 plugins error 设置里 Languages Frameworks里面没有JavaScript?
  4. php 邮箱重置密码错误,discuz邮箱重置密码参数失败的解决方法
  5. Python 线程(二):简单锁实现线程同步
  6. inventory tool for Microsoft Uplates简介
  7. Infortrend新技术解决高效与节能的矛盾
  8. ITSM群(48132184)讨论精选
  9. html表白树代码程序怎么调,抖音表白弹窗vbs代码怎么制作 表白树特效程序代码教程详细介绍...
  10. 重新注册所有dll文件
  11. 极客星球 | Unity3D插件模板化探索
  12. 三维全景拍摄这些技巧很实用
  13. Pr:制作片尾滚动字幕(基本图形法)
  14. 功能测试常见的测试方法有哪些?
  15. 全球及中国仿制药产业未来发展走势及营销产量规模预测报告2021-2027年
  16. 区块链网络管理平台WeBASE双节点可视化部署
  17. 安卓linux开机画面,安卓开机画面_安卓开机动画修改_安卓开机动画修改器-Guide信息网...
  18. drcom上网登录窗不弹出_无线网络连接后不能弹出浏览器登录页面是怎么回事?
  19. 软件工程——初识文档
  20. 正则表达式语法简介说明

热门文章

  1. python导入第三方数据库
  2. 嵌入式 tomcat的使用
  3. 关于线程join方法的理解
  4. IBM DB2关键特性解析:DB2分区特性
  5. Python Tornado web框架简单例子
  6. 揭秘 IFTTT 每天处理几十亿事件数据的基础结构
  7. 大B与小b的区别(Bps与bps)
  8. mysql的时间类型的比较
  9. 剑指_复杂链表的复制(Python)
  10. c语言指针的应用实验报告6,C语言实验六实验报告——指针.doc