Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
//
// HeaderSecurity.swift
// twogetskills
//
// Created by Efrain Yanez Recanatini on 5/6/22.
//
import Foundation
import var CommonCrypto.CC_MD5_DIGEST_LENGTH
import func CommonCrypto.CC_MD5
import typealias CommonCrypto.CC_LONG
class HeaderSecurity
{
public let created : Int
public let rand : Int
public var secret : String = ""
private var appData = AppData.sharedInstance
init()
{
created = Int(round(Date().timeIntervalSince1970))
rand = Int.random(in: 0..<8999) + 1000
let md5Data = MD5(string: "\(appData.devicePassword)" + ":" + "\(created)" + ":" + "\(rand)")
secret = md5Data.map {
String(format: "%02hhx", $0)
}.joined()
}
func MD5(string: String) -> Data {
let length = Int(CC_MD5_DIGEST_LENGTH)
let messageData = string.data(using:.utf8)!
var digestData = Data(count: length)
_ = digestData.withUnsafeMutableBytes { digestBytes -> UInt8 in
messageData.withUnsafeBytes { messageBytes -> UInt8 in
if let messageBytesBaseAddress = messageBytes.baseAddress, let digestBytesBlindMemory = digestBytes.bindMemory(to: UInt8.self).baseAddress {
let messageLength = CC_LONG(messageData.count)
CC_MD5(messageBytesBaseAddress, messageLength, digestBytesBlindMemory)
}
return 0
}
}
return digestData
}
}