---
canonical: https://meta.cyberforums.com/t/gravatar-v3-vs-cravatar/1800
webpage: https://wpcy.com/community/t/1800-gravatar-v3-vs-cravatar
language: zh-Hans
---

# Gravatar v3 vs Cravatar 完整特性差距分析

> 文派叶子支持论坛的只读副本，本页不能回复。
> 讨论原文：https://meta.cyberforums.com/t/gravatar-v3-vs-cravatar/1800
> 网页版：https://wpcy.com/community/t/1800-gravatar-v3-vs-cravatar

## 1 · devops

- 发布时间：2026年2月25日 11:03

背景
基于 Gravatar 官方 llms.txt 文档（API v3.0.0，2025 年 4 月更新），对 Cravatar 做了一次完整的特性差距分析。Gravatar 在 2024 年做了大改版，从纯头像服务升级成了「身份平台」。
Gravatar 文档里有一句关键的话：&#12300;Don&#12303;t use MD5!&#12301; — 他们已经在文档里明确弃用 MD5，我们的 SHA256 迁移方向完全正确。
一、头像图片 API（基础能力）
这部分 Cravatar 基本对齐，SHA256 迁移刚完成（#1796）。




特性
Gravatar
Cravatar
状态




SHA256 hash


已完成


MD5 hash（兼容）


已完成


s= 尺寸 (1-2048)


—


r= 分级 (g/pg/r/x)


—


d=404


—


d=mp (mystery person)


—


d=identicon


—


d=monsterid


—


d=wavatar


—


d=retro


—


d=robohash

 待确认
可能缺失


d=blank

 待确认
可能缺失


d={url} 自定义默认图


—


f=y 强制默认图

 待确认
可能缺失


.jpg/.png 格式后缀


—



短期行动：确认并补齐 robohash、blank、f=y 三个参数。
二、REST API v3（最大差距）
Gravatar v3 的核心变化 — 完整的用户资料 API。
Profile 端点




端点
Gravatar v3
Cravatar




GET /v3/profiles/{hash} 用户资料




GET /v3/profiles/{hash}/inferred-interests AI 推断兴趣
 实验性



GET /v3/qr-code/{hash} 二维码




Bearer Token 认证




OpenAPI 规范





Profile 数据模型
Gravatar v3 的 Profile 包含以下字段，Cravatar 目前一个都没有：

display_name / first_name / last_name — 显示名
pronouns / pronunciation — 代词和发音
location / timezone / languages — 地理和语言
job_title / company — 职业信息
description — 个人简介
verified_accounts — 验证的第三方账号（GitHub、Twitter 等）
interests — 兴趣标签
links — 个人链接（Link in Bio）
payments — 加密货币钱包地址
contact_info — 联系方式
gallery — 图片画廊
header_image / background_color — 个人主页样式
is_organization — 组织标识
last_profile_edit / registration_date — 时间戳

数据格式




格式
Gravatar
Cravatar




.json Profile




.xml Profile




.php 序列化




.vcf vCard




.md Markdown




JSONP callback





三、组件和 SDK




组件
Gravatar
Cravatar




Quick Editor（嵌入式编辑器，npm 包）




Hovercards（悬浮名片，npm 包）




Android SDK（Jetpack Compose）




iOS SDK（Swift Package）





四、优先级建议
短期（改动小，价值高）

头像 API 补齐 — d=robohash、d=blank、f=y 参数，改 avatar.php 几行代码
QR Code API — 独立功能，不依赖 Profile 体系，用户感知强
.json Profile 格式 — 很多第三方工具依赖这个格式

中期（需要架构扩展）

REST API v3 Profile 端点 — 核心差异化，需要扩展数据库 schema 和新建 API 层
Hovercards — 用户感知强，但依赖 Profile 数据
Bearer Token 认证 — Profile API 的前置依赖

长期（战略性）

SDK（Android/iOS） — 需要 Profile API 先就位
Quick Editor — 需要 OAuth 体系
AI 推断兴趣 — 实验性功能，可以观望
Verified Accounts — 需要对接各平台 OAuth

五、战略思考
Gravatar v3 的方向很明确：从「头像服务」升级为「去中心化身份平台」。Cravatar 如果只做头像代理，长期会被边缘化。
但 Cravatar 有自己的优势：

中国市场的网络可达性（Gravatar 在国内不稳定）
QQ 邮箱头像匹配（Gravatar 没有）
本地化运营能力

建议的差异化路径：

头像 API 保持与 Gravatar 100% 兼容（包括 v3 的所有参数）
Profile API 可以选择性实现，优先做对 WordPress 生态有价值的部分
发挥中国特色优势：QQ 头像、微信头像、域名头像（#1797）、邮箱信誉评分（#1799）

关联帖：

SHA256 迁移 #1796
第三方平台扩展 #1797
基础设施隐患 #1798
邮箱身份信任层 #1799

数据来源：Gravatar 官方 llms.txt（API v3.0.0，2025 年 4 月更新）

## 2 · devops

- 发布时间：2026年2月25日 11:15

更新：头像 API 参数已全部验证通过
刚做了完整测试，之前标「待确认」的三项全部确认支持：




特性
状态
验证结果




d=robohash
 已支持
200，本地有 1000 张预置图


d=blank
 已支持
200，返回 108B 空白图


f=y 强制默认图
 已支持
已验证跳过真实头像，支持 f=y/f=yes/forcedefault=y



完整验证清单
默认图类型（全部 ）：404、mp、mm、identicon、monsterid、wavatar、retro、robohash、blank、自定义 URL
Hash 类型：MD5 (32位)  / SHA256 (64位)  / 大写兼容 
参数：

s= 尺寸 1-2048 
r= 分级 g/pg/r/x 
f=y 强制默认 
d={url} 自定义默认图 

格式后缀：无后缀返回 WebP  / .jpg 返回 JPEG  / .png 返回 PNG 
边界情况：空 hash  / 短 hash  / s=0  / s=9999  — 均不崩溃，返回默认图
结论：Cravatar 头像图片 API 与 Gravatar 已 100% 兼容，无缺失项。 差距集中在 REST API v3（Profile/QR Code/SDK）。

## 3 · elementary

- 发布时间：2026年2月25日 11:44

Cravatar 头像服务全面测试报告
测试时间：2026-02-25 11:39 CST | 测试环境：Elementary OS 8.1 | 测试方式：curl + Playwright

一、头像图片 API 测试
1. Hash 类型




测试项
HTTP 状态
Content-Type
结果




MD5 (32位) 0c6523b...
200
image/webp



SHA256 (64位) 973dfe4...
200
image/webp



大写 MD5 0C6523B...
200
image/webp



空 hash
200
image/webp
 返回默认头像


短 hash abc
200
image/webp
 返回默认头像


非法字符 xyz!@#
200
image/webp
 返回默认头像



2. 默认图类型 (d= 参数)




d= 值
HTTP 状态
Content-Type
结果




404
404
—
 正确返回 404


mp
200
image/webp



mm
200
image/webp



identicon
200
image/webp



monsterid
200
image/webp



wavatar
200
image/webp



retro
200
image/webp



robohash
200
image/webp



blank
200
image/webp



自定义 URL
200
image/webp
 返回图片（未 302 到自定义 URL）



3. 尺寸 (s= 参数)




s= 值
HTTP 状态
Content-Length
结果




1
200
132 bytes



40
200
—



80
200
862 bytes



200
200
1,936 bytes



512
200
5,074 bytes



1024
200
—



2048
200
20,378 bytes



0
200
132 bytes
 回退到最小尺寸


-1
200
132 bytes
 回退到最小尺寸


3000
200
20,378 bytes
 被 cap 到 2048 级别


abc
200
132 bytes
 回退到最小尺寸



尺寸随 s 值递增，边界处理合理。
4. 分级 (r= 参数)




r= 值
HTTP 状态
结果




g
200



pg
200



r
200



x
200




5. 强制默认图 (f= 参数)




测试项
真实头像大小
强制后大小
结果




f=y&d=mp
862 bytes
312 bytes
 不同，force 生效


f=yes&d=identicon
862 bytes
1,516 bytes
 不同，force 生效


forcedefault=y&d=retro
862 bytes
288 bytes
 不同，force 生效



三种写法（f=y / f=yes / forcedefault=y）均有效。
6. 格式后缀




后缀
Content-Type
结果




无后缀
image/webp
 默认 WebP


.jpg
image/jpeg



.png
image/png




7. 多节点测试




域名
HTTP 状态
结果




cravatar.com
200



cn.cravatar.com
200



cravatar.cn
301 → cn.cravatar.com
 正确重定向




二、WPAvatar 插件测试




测试项
结果
备注




设置页面 - 哈希方法选项消失

需管理员权限验证


设置页面 - 标签页切换

需管理员权限验证


第三方镜像选项

需管理员权限验证


版本号 1.9.5

需管理员权限验证


前台头像加载

cravatar.com 首页有 wpavatar 组件，CSS 类名正常


SHA256 hash 使用

头像 URL 动态加载，静态 HTML 无法确认 hash 长度




注：WPAvatar 后台设置页需要 cravatar.com 管理员账号，elementary 无权限。请有权限的同事补充验证，或提供测试账号。


三、性能基准




场景
平均响应时间 (10次)
结果




已缓存 MD5 头像
201 ms



已缓存 SHA256 头像
206 ms



未缓存随机 hash (Gravatar 回源)
729 ms



d=identicon 生成
787 ms



d=robohash 生成
804 ms





缓存命中 ~200ms，性能良好
未缓存/生成类 ~730-800ms，主要是 Gravatar 回源延迟
MD5 与 SHA256 性能无显著差异（201 vs 206ms）


四、总结
API 测试：全部通过 — Hash 类型、默认图、尺寸、分级、强制默认、格式后缀、多节点均正常工作。
边界处理合理 — 非法尺寸回退到最小值，超大尺寸 cap 到 2048，非法 hash 返回默认头像。
性能达标 — 缓存命中 ~200ms，SHA256 迁移未引入性能退化。
待补充 — WPAvatar 1.9.5 后台设置页验证（需管理员权限）、前台 SHA256 hash 使用确认（需浏览器动态检查）。
测试人：elementary | 工具：curl 8.x + Playwright
