Data+Extension.swift 768 B

1234567891011121314151617181920212223242526
  1. //
  2. // Data+Extension.swift
  3. // Lanu
  4. //
  5. // Created by OneeChan on 2025/12/2.
  6. //
  7. import Foundation
  8. import CommonCrypto
  9. extension Data {
  10. /// 计算 Data 的 MD5 哈希值(16进制字符串,小写)
  11. /// - Returns: MD5 字符串(32位),计算失败返回空字符串
  12. var md5: String {
  13. // MD5 哈希结果是 16 字节的二进制数据
  14. var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH))
  15. // 调用 CommonCrypto 计算 MD5
  16. _ = self.withUnsafeBytes { bytes in
  17. CC_MD5(bytes.baseAddress, CC_LONG(self.count), &digest)
  18. }
  19. // 将二进制数据转为 16 进制字符串(小写)
  20. return digest.map { String(format: "%02hhx", $0) }.joined()
  21. }
  22. }