Java取邮箱名_java根据邮箱获取Gravatar头像
在网上找了很多根据邮箱获取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头像相关推荐
- java 反射 参数名_JAVA 8 反射获取参数名
前言 在JDK8之前javac编译是不会把构造器和方法的参数名编译进class中,如果需要获取参数名,可以在方法上加上注解,反射获取注解的值从而获取参数名,比如Jackson的@JsonCreator ...
- java邮箱验证码_Java实现邮箱验证码
原标题:Java实现邮箱验证码 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 邮箱验证码 一般能使用邮箱注 ...
- java 邮箱验证_Java实现邮箱验证
Java实现邮箱验证 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.我们可以基于JavaMail开 ...
- java源文件扩展名_java源文件名的后缀是什么?
java源文件名的后缀是:".java".java编译后的文件扩展名是:".class":"class"文件全名称为"Java c ...
- java取模负数_JAVA中取模的问题
## Java取模(%)运算 > [上篇文章](https://yebukong.com/article/1101070795486109697.html "上篇文章") 提 ...
- java中邮箱发送_java实现邮箱发送(java mail)
导包:mail.jar import java.util.Properties; import javax.mail.Message; import javax.mail.Message.Recipi ...
- java 取随机正整数_Java获取随机数
Java 获取随机数 import java.util.Random; public class randomDemo { public static void main(String[]args){ ...
- java输出string变量名_java – 从String获取名称变量
示例代码: int width = 5; int area = 8; int potato = 2; int stackOverflow = -4; 现在,假设我想让用户输入一个字符串: String ...
- java取整数位_java获取整数的各位数值
第一种是取模运算 int qian =input/1000; //千位除以1000 int bai = input/100%10;//百位除以100%10 int shi = input%100/10 ...
最新文章
- 图像形态学(opencv),运行后通过在屏幕上输入对应指令完成相对应的形态学方法。
- 强大的 IDEA 代码生成
- WMframework成长日记(一)——框架介绍
- poj 1065 Wooden Sticks
- SD--如何在输出控制中增加自定义字段
- ASP.NET Core 2调用Azure云上的PowerBI报表展示
- MSSQL-最佳实践-如何监控备份还原进度
- 算法:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort)总结...
- Java中int数字_java int 比较数值里面是否有某个数字
- IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表
- 数模算法:排队论模型
- E71使用蓝牙连接PC套件的一些经验
- 从零开始变成一个脚本小子001-初窥密码
- 叉车AGV车载系统模块详解
- PyTorch RuntimeError: size mismatch, m1:
- 超赞!每个设计师都应该了解的IOS编年史
- html网页轮播速度,纯HTML+JS实现轮播
- 因数分解 EduCoder习题
- 微信公众号都有哪些营销技巧
- 【C++】3-3 兔子跳楼梯---动态规划(PTA)