diff --git a/reviewboard/diffviewer/models/filediff.py b/reviewboard/diffviewer/models/filediff.py
index 3fb44687f78e3f65497d195f4da2693ce9815d24..2f895b40da0e72b740db86fdf894f0a578598ccb 100644
--- a/reviewboard/diffviewer/models/filediff.py
+++ b/reviewboard/diffviewer/models/filediff.py
@@ -455,7 +455,20 @@ class FileDiff(models.Model):
         Version Added:
             4.0
         """
-        return self.extra_data.get('orig_sha256')
+        # Avoid a circular import.
+        from reviewboard.attachments.models import FileAttachment
+
+        if not self.binary:
+            return self.extra_data.get('orig_sha256')
+        else:
+            attachment = FileAttachment.objects.get_for_filediff(
+                self,
+                modified=False)
+
+            if attachment:
+                return attachment.sha256_checksum
+            else:
+                return None
 
     @property
     def patched_sha256(self):
@@ -467,7 +480,18 @@ class FileDiff(models.Model):
         Version Added:
             4.0
         """
-        return self.extra_data.get('patched_sha256')
+        # Avoid a circular import.
+        from reviewboard.attachments.models import FileAttachment
+
+        if not self.binary:
+            return self.extra_data.get('patched_sha256')
+        else:
+            attachment = FileAttachment.objects.get_for_filediff(self)
+
+            if attachment:
+                return attachment.sha256_checksum
+            else:
+                return None
 
     @property
     def encoding(self):
