Files
e-party-iOS/yana/Utils/Extensions/String+HashTest.swift
edwinQQQ 128bf36c88 feat: 更新依赖和项目配置,优化代码结构
- 在Package.swift中注释掉旧的swift-composable-architecture依赖,并添加swift-case-paths依赖。
- 在Podfile中将iOS平台版本更新至16.0,并移除QCloudCOSXML/Transfer依赖,改为使用QCloudCOSXML。
- 更新Podfile.lock以反映依赖变更,确保项目依赖的准确性。
- 新增架构分析需求文档,明确项目架构评估和改进建议。
- 在多个文件中实现async/await语法,提升异步操作的可读性和性能。
- 更新日志输出方法,确保在调试模式下提供一致的调试信息。
- 优化多个视图组件,提升用户体验和代码可维护性。
2025-07-17 18:47:09 +08:00

84 lines
2.7 KiB
Swift

import Foundation
///
/// MD5 SHA256
struct StringHashTest {
///
static func runTests() {
debugInfoSync("🧪 开始测试字符串哈希方法...")
let testStrings = [
"hello world",
"test123",
"key=rpbs6us1m8r2j9g6u06ff2bo18orwaya",
"phone=encrypted_phone&password=encrypted_password&client_id=erban-client&key=rpbs6us1m8r2j9g6u06ff2bo18orwaya"
]
for testString in testStrings {
debugInfoSync("\n📝 测试字符串: \"\(testString)\"")
// MD5
let md5Result = testString.md5()
debugInfoSync(" MD5: \(md5Result)")
// SHA256 (iOS 13+)
if #available(iOS 13.0, *) {
let sha256Result = testString.sha256()
debugInfoSync(" SHA256: \(sha256Result)")
} else {
debugInfoSync(" SHA256: 不支持 (需要 iOS 13+)")
}
}
debugInfoSync("\n✅ 哈希方法测试完成")
}
///
static func verifyKnownHashes() {
debugInfoSync("\n🔍 验证已知哈希值...")
// "hello world" MD5 "5d41402abc4b2a76b9719d911017c592"
let testString = "hello world"
let expectedMD5 = "5d41402abc4b2a76b9719d911017c592"
let actualMD5 = testString.md5()
if actualMD5 == expectedMD5 {
debugInfoSync("✅ MD5 验证通过: \(actualMD5)")
} else {
debugErrorSync("❌ MD5 验证失败:")
debugErrorSync(" 期望: \(expectedMD5)")
debugErrorSync(" 实际: \(actualMD5)")
}
// SHA256
if #available(iOS 13.0, *) {
let expectedSHA256 = "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
let actualSHA256 = testString.sha256()
if actualSHA256 == expectedSHA256 {
debugInfoSync("✅ SHA256 验证通过: \(actualSHA256)")
} else {
debugErrorSync("❌ SHA256 验证失败:")
debugErrorSync(" 期望: \(expectedSHA256)")
debugErrorSync(" 实际: \(actualSHA256)")
}
}
}
}
// MARK: - 使
/*
//
StringHashTest.runTests()
StringHashTest.verifyKnownHashes()
//
debugInfoSync("Test MD5:", "hello".md5())
if #available(iOS 13.0, *) {
debugInfoSync("Test SHA256:", "hello".sha256())
}
*/