diff --git a/scripts/filters/post.js b/scripts/filters/post.js
index f1ea4cbd9..d40cef2d7 100644
--- a/scripts/filters/post.js
+++ b/scripts/filters/post.js
@@ -21,6 +21,10 @@ hexo.extend.filter.register('after_post_render', data => {
       const link = parse(href);
       if (!link.protocol || link.hostname === siteHost) return match;
 
+      // Return encrypted URL with title.
+      const title = match.match(/title="([^"]+)"/);
+      if (title) return `<span class="exturl" data-url="${Buffer.from(href).toString('base64')}" title="${title[1]}">${html}<i class="fa fa-external-link-alt"></i></span>`;
+
       return `<span class="exturl" data-url="${Buffer.from(href).toString('base64')}">${html}<i class="fa fa-external-link-alt"></i></span>`;
     });
   }