Skip to content

Commit 8d5852c

Browse files
authored
Merge pull request #137 from wordpress-mobile/issue/gravatar-support-sha256
Gravatar sha256 support
2 parents 0d87402 + 52a9327 commit 8d5852c

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

WordPressUtils/src/main/java/org/wordpress/android/util/GravatarUtils.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ public static String gravatarFromEmail(final String email, int size) {
6868

6969
public static String gravatarFromEmail(final String email, int size, DefaultImage defaultImage) {
7070
return "http://gravatar.com/avatar/"
71-
+ StringUtils.getMd5Hash(StringUtils.notNullStr(email))
71+
+ StringUtils.getSha256Hash(StringUtils.notNullStr(email))
7272
+ "?d=" + defaultImage.toString()
73-
+ "&size=" + Integer.toString(size);
73+
+ "&size=" + size;
7474
}
7575

7676
public static String blavatarFromUrl(final String url, int size) {
@@ -79,8 +79,8 @@ public static String blavatarFromUrl(final String url, int size) {
7979

8080
public static String blavatarFromUrl(final String url, int size, DefaultImage defaultImage) {
8181
return "http://gravatar.com/blavatar/"
82-
+ StringUtils.getMd5Hash(UrlUtils.getHost(url))
82+
+ StringUtils.getSha256Hash(UrlUtils.getHost(url))
8383
+ "?d=" + defaultImage.toString()
84-
+ "&size=" + Integer.toString(size);
84+
+ "&size=" + size;
8585
}
8686
}

WordPressUtils/src/main/java/org/wordpress/android/util/StringUtils.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,26 @@ public static String getMd5Hash(String input) {
139139
return md5;
140140
}
141141

142+
public static BigInteger getSha256IntHash(String input) {
143+
try {
144+
MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
145+
byte[] messageDigest = sha256.digest(input.getBytes());
146+
return new BigInteger(1, messageDigest);
147+
} catch (NoSuchAlgorithmException e) {
148+
AppLog.e(T.UTILS, e);
149+
return null;
150+
}
151+
}
152+
153+
public static String getSha256Hash(String input) {
154+
BigInteger number = getSha256IntHash(input);
155+
String sha256 = number.toString(16);
156+
while (sha256.length() < 64) {
157+
sha256 = "0" + sha256;
158+
}
159+
return sha256;
160+
}
161+
142162
/*
143163
* nbradbury - adapted from Html.escapeHtml(), which was added in API Level 16
144164
* TODO: not thoroughly tested yet, so marked as private - not sure I like the way

0 commit comments

Comments
 (0)