import Foundation import CryptoKit extension String { /// trim 后空字符串返回 nil var rd_nilIfEmpty: String? { let trimmed = trimmingCharacters(in: .whitespacesAndNewlines) return trimmed.isEmpty ? nil : trimmed } /// SHA256 hex 摘要 var rd_sha256Hex: String { let digest = SHA256.hash(data: Data(self.utf8)) return digest.map { String(format: "%02x", $0) }.joined() } }