fixes #148 + test case
diff --git a/cryptography/primitives/hashes.py b/cryptography/primitives/hashes.py
index c4bd8ad..7133a91 100644
--- a/cryptography/primitives/hashes.py
+++ b/cryptography/primitives/hashes.py
@@ -44,7 +44,7 @@
                                                self.digest_size)
 
     def hexdigest(self):
-        return binascii.hexlify(self.digest()).decode("ascii")
+        return str(binascii.hexlify(self.digest()).decode("ascii"))
 
     def _copy_ctx(self):
         return self._api.copy_hash_context(self._ctx)
diff --git a/tests/primitives/test_hashes.py b/tests/primitives/test_hashes.py
index 805d992..03de891 100644
--- a/tests/primitives/test_hashes.py
+++ b/tests/primitives/test_hashes.py
@@ -28,6 +28,10 @@
         with pytest.raises(TypeError):
             m.update(six.u("\u00FC"))
 
+    def test_base_hash_hexdigest_string_type(self, api):
+        m = hashes.SHA1(api=api, data=b"")
+        assert isinstance(m.hexdigest(), str)
+
 
 class TestSHA1(object):
     test_SHA1 = generate_base_hash_test(