parent
fb4a63d10b
commit
f8e0d98acf
|
|
@ -1,6 +1,5 @@
|
|||
import Foundation
|
||||
import Moya
|
||||
import CommonCrypto
|
||||
|
||||
/// JiaMiKey 的 MD5,预计算避免每次请求都算
|
||||
private let jiaMiKeyMD5: String = {
|
||||
|
|
@ -73,10 +72,6 @@ final class SignPlugin: PluginType {
|
|||
}
|
||||
|
||||
fileprivate static func md5(_ string: String) -> String {
|
||||
let cStr = string.cString(using: .utf8)
|
||||
let length = CC_LONG(strlen(cStr!))
|
||||
var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH))
|
||||
CC_MD5(cStr, length, &digest)
|
||||
return digest.map { String(format: "%02x", $0) }.joined()
|
||||
string.md5
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
import Foundation
|
||||
import SwiftyJSON
|
||||
import CommonCrypto
|
||||
import CryptoKit
|
||||
import URLNavigator
|
||||
import SwiftDate
|
||||
|
||||
|
|
@ -53,29 +54,7 @@ public extension String {
|
|||
|
||||
// MARK: md5
|
||||
public extension String {
|
||||
var MD5String: String {
|
||||
|
||||
let cStrl = cString(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue));
|
||||
|
||||
let buffer = UnsafeMutablePointer<UInt8>.allocate(capacity: 16);
|
||||
|
||||
CC_MD5(cStrl, CC_LONG(strlen(cStrl!)), buffer);
|
||||
|
||||
var md5String = "";
|
||||
|
||||
for idx in 0...15 {
|
||||
|
||||
let obcStrl = String.init(format: "%02x", buffer[idx]);
|
||||
|
||||
md5String.append(obcStrl);
|
||||
|
||||
}
|
||||
|
||||
free(buffer);
|
||||
|
||||
return md5String;
|
||||
|
||||
}
|
||||
var MD5String: String { md5 }
|
||||
}
|
||||
// MARK: Base64
|
||||
|
||||
|
|
@ -93,13 +72,7 @@ public extension String {
|
|||
|
||||
|
||||
public extension String {
|
||||
var md5: String {
|
||||
let data = self.data
|
||||
var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH))
|
||||
CC_MD5((data as NSData).bytes, CC_LONG(data.count), &digest)
|
||||
let hexBytes = digest.map { String(format: "%02hhx", $0) }
|
||||
return hexBytes.joined(separator: "")
|
||||
}
|
||||
var md5: String { data.md5Hex }
|
||||
|
||||
var sha1: String {
|
||||
let data = self.data
|
||||
|
|
@ -216,6 +189,10 @@ public extension Data {
|
|||
var string: String {
|
||||
return String(data: self, encoding: String.Encoding.utf8) ?? ""
|
||||
}
|
||||
|
||||
var md5Hex: String {
|
||||
Insecure.MD5.hash(data: self).map { String(format: "%02x", $0) }.joined()
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Int
|
||||
|
|
|
|||
|
|
@ -257,17 +257,7 @@ extension ApiManager {
|
|||
}
|
||||
|
||||
class func getMd5_32Bit_String(_ srcString: String, isUppercase: Bool) -> String {
|
||||
let cStr = srcString.cString(using: .utf8)
|
||||
let length = CC_LONG(strlen(cStr!))
|
||||
var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH))
|
||||
|
||||
CC_MD5(cStr, length, &digest)
|
||||
|
||||
var result = ""
|
||||
for i in 0..<Int(CC_MD5_DIGEST_LENGTH) {
|
||||
result += String(format: "%02x", digest[i])
|
||||
}
|
||||
|
||||
let result = srcString.md5
|
||||
return isUppercase ? result.uppercased() : result
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,9 +32,6 @@ enum LoadingStatus: Int {
|
|||
|
||||
enum ScriptMessageName: String, CaseIterable {
|
||||
case updateStatusBarStyle
|
||||
case openPageRouter
|
||||
case openPage
|
||||
case openWebView
|
||||
case openIM
|
||||
case toast
|
||||
case dialog
|
||||
|
|
@ -515,13 +512,6 @@ class FullscreenWebView: WKWebView {
|
|||
|
||||
// MARK: Native to JS
|
||||
|
||||
// 页面路由
|
||||
func openPageRouter(body: Any) {
|
||||
guard let body = body as? [String: Any],
|
||||
let url = body["url"] as? String else { return }
|
||||
AppRouter.push(url)
|
||||
}
|
||||
|
||||
// 页面显示
|
||||
func onPageShow() {
|
||||
webView.evaluateJavaScript("try { window.onPageShow(); } catch (e) {}", completionHandler: nil)
|
||||
|
|
@ -535,16 +525,6 @@ class FullscreenWebView: WKWebView {
|
|||
setNeedsStatusBarAppearanceUpdate()
|
||||
}
|
||||
|
||||
// MARK: - 打开原生页面(无参数)
|
||||
func openPage(body: Any) {
|
||||
guard let body = body as? [String: Any],
|
||||
let pageName = body["pageName"] as? String else { return }
|
||||
if let class_VC = NSClassFromString("QuickLocation.\(pageName)") as? BaseViewController.Type {
|
||||
let vc = class_VC.init()
|
||||
navigationController?.pushViewController(vc, animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - 打开WebView
|
||||
func openWebView(body: Any) {
|
||||
guard let body = body as? [String: Any],
|
||||
|
|
@ -695,10 +675,6 @@ private class CommonMessageHandler: NSObject, WKScriptMessageHandler {
|
|||
switch message.name {
|
||||
case "updateStatusBarStyle":
|
||||
webViewController?.updateStatusBarStyle(body: message.body)
|
||||
case "openPageRouter":
|
||||
webViewController?.openPageRouter(body: message.body)
|
||||
case "openPage":
|
||||
webViewController?.openPage(body: message.body)
|
||||
case "dialog":
|
||||
webViewController?.dialog(body: message.body)
|
||||
case "toast":
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
import Foundation
|
||||
import RxSwift
|
||||
import SwiftyJSON
|
||||
import CommonCrypto
|
||||
|
||||
enum UploadFileKind {
|
||||
case jpeg
|
||||
|
|
@ -203,15 +202,11 @@ struct UploadService {
|
|||
}
|
||||
|
||||
private static func md5(_ string: String) -> String {
|
||||
md5(Data(string.utf8))
|
||||
string.md5
|
||||
}
|
||||
|
||||
private static func md5(_ data: Data) -> String {
|
||||
var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH))
|
||||
data.withUnsafeBytes { buffer in
|
||||
_ = CC_MD5(buffer.baseAddress, CC_LONG(data.count), &digest)
|
||||
}
|
||||
return digest.map { String(format: "%02x", $0) }.joined()
|
||||
data.md5Hex
|
||||
}
|
||||
|
||||
private static func makeError(_ message: String) -> NSError {
|
||||
|
|
|
|||
Loading…
Reference in New Issue