diff --git a/Sources/Nuke/Caching/DataCache.swift b/Sources/Nuke/Caching/DataCache.swift index 8a63cf1c3..8b3fd334f 100644 --- a/Sources/Nuke/Caching/DataCache.swift +++ b/Sources/Nuke/Caching/DataCache.swift @@ -106,7 +106,7 @@ public final class DataCache: DataCaching, @unchecked Sendable { /// A `FilenameGenerator` implementation which uses SHA1 hash function to /// generate a filename from the given key. public static func filename(for key: String) -> String? { - key.isEmpty ? nil : key.sha1 + key.isEmpty ? nil : key.sha256 } private func didInit() throws { diff --git a/Sources/Nuke/Internal/Extensions.swift b/Sources/Nuke/Internal/Extensions.swift index 03b46dc5f..275faa60d 100644 --- a/Sources/Nuke/Internal/Extensions.swift +++ b/Sources/Nuke/Internal/Extensions.swift @@ -6,17 +6,17 @@ import Foundation import CryptoKit extension String { - /// Calculates SHA1 from the given string and returns its hex representation. + /// Calculates SHA256 from the given string and returns its hex representation. /// /// ```swift - /// print("http://test.com".sha1) - /// // prints "50334ee0b51600df6397ce93ceed4728c37fee4e" + /// print("http://test.com".sha256) + /// // prints "8b408a0c7163fdfff06ced3e80d7d2b3acd9db900905c4783c28295b8c996165" /// ``` - var sha1: String? { + var sha256: String? { guard let input = self.data(using: .utf8) else { return nil // The conversion to .utf8 should never fail } - let digest = Insecure.SHA1.hash(data: input) + let digest = CryptoKit.SHA256.hash(data: input) var output = "" for byte in digest { output.append(String(format: "%02x", byte)) diff --git a/Tests/NukeTests/DataCacheTests.swift b/Tests/NukeTests/DataCacheTests.swift index b5fb25758..468e1af02 100644 --- a/Tests/NukeTests/DataCacheTests.swift +++ b/Tests/NukeTests/DataCacheTests.swift @@ -61,11 +61,11 @@ class DataCacheTests: XCTestCase { func testDefaultKeyEncoder() { let cache = try! DataCache(name: UUID().uuidString) let filename = cache.filename(for: "http://test.com") - XCTAssertEqual(filename, "50334ee0b51600df6397ce93ceed4728c37fee4e") + XCTAssertEqual(filename, "8b408a0c7163fdfff06ced3e80d7d2b3acd9db900905c4783c28295b8c996165") } func testSHA1() { - XCTAssertEqual("http://test.com".sha1, "50334ee0b51600df6397ce93ceed4728c37fee4e") + XCTAssertEqual("http://test.com".sha256, "8b408a0c7163fdfff06ced3e80d7d2b3acd9db900905c4783c28295b8c996165") } // MARK: Add