在网上找了很多根据邮箱获取Gravatar头像的教程都是php的...

好吧我也记录下来....

首先嘛,是需要到https://en.gravatar.com/ 注册或者登录吧..

然后可以根据php的语言转换...

php获取Gravatar头像是这样仔转换的

$email = "admin@199604.com";

$gravatarImg = 'https://s.gravatar.com/avatar/' . md5($email) . '?s=32';

1

2

$email="admin@199604.com";

$gravatarImg='https://s.gravatar.com/avatar/'.md5($email).'?s=32';

因为我的邮箱转化为md5后是162d8d081d380691c5279df2bbef4152

所以这时候$gravatarImg 是https://s.gravatar.com/avatar/162d8d081d380691c5279df2bbef4152?s=32

其实?s=xx是图片大小

最后http://www.gravatar.com/avatar/162d8d081d380691c5279df2bbef4152?s=32 也是可以获取图片...

现在我们来对比一下官网的吧...

看到这个图片是不是和我上面解释相差无几吧..但是最重要的一点是...你的邮箱在Gravatar上存在上传的图片..

下面记录一下java实现吧..

package com.blog.util;

import java.security.MessageDigest;

public class Functions {

public static String emailToMd5(String message){

String temp = "";

try{

MessageDigest md5Digest = MessageDigest.getInstance("MD5");

byte[] encodeMd5Digest = md5Digest.digest(message.getBytes());

temp = convertByteToHexString(encodeMd5Digest);

}catch (Exception e) {

e.printStackTrace();

}

return temp;

}

public static String convertByteToHexString(byte[] bytes){

String result = "";

for(int i=0;i

int temp = bytes[i]&0xff;

String tempHex = Integer.toHexString(temp);

if(tempHex.length()<2){

result +="0"+tempHex;

}else{

result +=tempHex;

}

}

return result;

}

//根据email获取gravatar头像

public static String getGravatar(String email) {

String emailMd5 = emailToMd5(email);

//设置图片大小32px

String avatar = "https://s.gravatar.com/avatar/"+emailMd5+"?s=32";

return avatar;

}

public static void main(String[] args) {

//String emailMd5 = emailToMd5("admin@199604.com");

//System.out.println(emailMd5);//162d8d081d380691c5279df2bbef4152

//System.out.println(emailMd5.equals("162d8d081d380691c5279df2bbef4152"));//true

String gravatarImg = getGravatar("admin@199604.com");

System.out.println(gravatarImg);

//输出https://s.gravatar.com/avatar/162d8d081d380691c5279df2bbef4152?s=32

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

packagecom.blog.util;

importjava.security.MessageDigest;

publicclassFunctions{

publicstaticStringemailToMd5(Stringmessage){

Stringtemp="";

try{

MessageDigestmd5Digest=MessageDigest.getInstance("MD5");

byte[]encodeMd5Digest=md5Digest.digest(message.getBytes());

temp=convertByteToHexString(encodeMd5Digest);

}catch(Exceptione){

e.printStackTrace();

}

returntemp;

}

publicstaticStringconvertByteToHexString(byte[]bytes){

Stringresult="";

for(inti=0;i

inttemp=bytes[i]&0xff;

StringtempHex=Integer.toHexString(temp);

if(tempHex.length()<2){

result+="0"+tempHex;

}else{

result+=tempHex;

}

}

returnresult;

}

//根据email获取gravatar头像

publicstaticStringgetGravatar(Stringemail){

StringemailMd5=emailToMd5(email);

//设置图片大小32px

Stringavatar="https://s.gravatar.com/avatar/"+emailMd5+"?s=32";

returnavatar;

}

publicstaticvoidmain(String[]args){

//String emailMd5 = emailToMd5("admin@199604.com");

//System.out.println(emailMd5);//162d8d081d380691c5279df2bbef4152

//System.out.println(emailMd5.equals("162d8d081d380691c5279df2bbef4152"));//true

StringgravatarImg=getGravatar("admin@199604.com");

System.out.println(gravatarImg);

//输出https://s.gravatar.com/avatar/162d8d081d380691c5279df2bbef4152?s=32

}

}

原理其实很简单,就是把邮箱转化成md5,然后拼接到Gravatar图片地址上面..

如果你觉得不信的话,可以去实现....

Java取邮箱名_java根据邮箱获取Gravatar头像相关推荐

  1. java 反射 参数名_JAVA 8 反射获取参数名

    前言 在JDK8之前javac编译是不会把构造器和方法的参数名编译进class中,如果需要获取参数名,可以在方法上加上注解,反射获取注解的值从而获取参数名,比如Jackson的@JsonCreator ...

  2. java邮箱验证码_Java实现邮箱验证码

    原标题:Java实现邮箱验证码 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 邮箱验证码 一般能使用邮箱注 ...

  3. java 邮箱验证_Java实现邮箱验证

    Java实现邮箱验证 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.我们可以基于JavaMail开 ...

  4. java源文件扩展名_java源文件名的后缀是什么?

    java源文件名的后缀是:".java".java编译后的文件扩展名是:".class":"class"文件全名称为"Java c ...

  5. java取模负数_JAVA中取模的问题

    ## Java取模(%)运算 > [上篇文章](https://yebukong.com/article/1101070795486109697.html "上篇文章") 提 ...

  6. java中邮箱发送_java实现邮箱发送(java mail)

    导包:mail.jar import java.util.Properties; import javax.mail.Message; import javax.mail.Message.Recipi ...

  7. java 取随机正整数_Java获取随机数

    Java 获取随机数 import java.util.Random; public class randomDemo { public static void main(String[]args){ ...

  8. java输出string变量名_java – 从String获取名称变量

    示例代码: int width = 5; int area = 8; int potato = 2; int stackOverflow = -4; 现在,假设我想让用户输入一个字符串: String ...

  9. java取整数位_java获取整数的各位数值

    第一种是取模运算 int qian =input/1000; //千位除以1000 int bai = input/100%10;//百位除以100%10 int shi = input%100/10 ...

最新文章

  1. 图像形态学(opencv),运行后通过在屏幕上输入对应指令完成相对应的形态学方法。
  2. 强大的 IDEA 代码生成
  3. WMframework成长日记(一)——框架介绍
  4. poj 1065 Wooden Sticks
  5. SD--如何在输出控制中增加自定义字段
  6. ASP.NET Core 2调用Azure云上的PowerBI报表展示
  7. MSSQL-最佳实践-如何监控备份还原进度
  8. 算法:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort)总结...
  9. Java中int数字_java int 比较数值里面是否有某个数字
  10. IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表
  11. 数模算法:排队论模型
  12. E71使用蓝牙连接PC套件的一些经验
  13. 从零开始变成一个脚本小子001-初窥密码
  14. 叉车AGV车载系统模块详解
  15. PyTorch RuntimeError: size mismatch, m1:
  16. 超赞!每个设计师都应该了解的IOS编年史
  17. html网页轮播速度,纯HTML+JS实现轮播
  18. 因数分解 EduCoder习题
  19. 微信公众号都有哪些营销技巧
  20. 【C++】3-3 兔子跳楼梯---动态规划(PTA)

热门文章

  1. 【论文写作】毕业论文查重率不能超过多少?
  2. JavaScript 调用本地exe文件
  3. 知识付费如何解决用户增长痛点?
  4. joomla模板开发
  5. Windows 服务器加域报 RPC service unavailable
  6. 苹果 iOS 12.5.3 正式版发布
  7. Adaptive AUTOSAR (AP) 平台设计(8)——诊断
  8. JScript js数组去重
  9. 微信公众号h5的分享功能
  10. 成都传智播客php培训课程介绍