为什么 kingfisher 使用 md5 创建 cacheFileName?

Why did kingfisher create cacheFileName using md5?

kingfisher为什么使用md5创建cacheFileName?还有其他特殊原因吗?

// DiskStorage.swift in Kingfisher
        func cacheFileName(forKey key: String) -> String {
            if config.usesHashedFileName {
                let hashedKey = key.kf.md5
                if let ext = config.pathExtension {
                    return "\(hashedKey).\(ext)"
                } else if config.autoExtAfterHashedFileName,
                          let ext = key.kf.ext {
                    return "\(hashedKey).\(ext)"
                }
                return hashedKey
            } else {
                if let ext = config.pathExtension {
                    return "\(key).\(ext)"
                }
                return key
            }
        }

使用文件的 md5 作为缓存中的文件名是一种常见的模式。缓存名称会随着文件的变化而变化,而来源url可能不会。
请注意,保留扩展名,因为以后使用该文件时可能会很方便。