JLChen
2021-04-30 a5247b61d585627a1a7b1e1f35f34de9f0af9fba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//
//  Copyright © 2018年 dahua. All rights reserved.
//
 
import Foundation
import UIKit
 
class DHAddByQRCodePresenter: NSObject, IDHAddByQRCodePresenter {
 
    var qrCodeContent: String? {
        get {
            let sn: NSString = DHAddDeviceManager.sharedInstance.deviceId as NSString
            let randomNum = Int(arc4random_uniform(89_999_999) + 10_000_000) //八位随机数
            let nonce: NSString = "\(randomNum)" as NSString
            let ssid: NSString = DHAddDeviceManager.sharedInstance.wifiSSID! as NSString
            let pwd: NSString = DHAddDeviceManager.sharedInstance.wifiPassword! as NSString
            let iv: NSString = "0000000000000000"
            
            let strToEncypt: NSString = "\(nonce),\(ssid),\(pwd)" as NSString
            let MD5Data = sn.lc_MD5Data()
            let nonceData = nonce.data(using: String.Encoding.utf8.rawValue)
            let mutableData: NSMutableData = NSMutableData()
            mutableData.append(nonceData!)
            mutableData.append(MD5Data!)
            
            let sha265Data = (mutableData as NSData).lc_SHA256()
            let keyData = (sha265Data! as NSData).reverse()
            let ivData = iv.data(using: String.Encoding.utf8.rawValue)
            let srcData = strToEncypt.data(using: String.Encoding.utf8.rawValue)
            let desData = (srcData! as NSData).aes256CBCOperation(CCOperation(kCCEncrypt), keyData: keyData, ivData: ivData)
            let base64 = desData?.base64EncodedString()
            let result = (nonce as String) + base64!
            return result
        }
    }
    
    weak var container: (UIViewController & IDHAddByQRCodeView)?
    
    
    func goNext() {
        let controller = DHWifiConnectViewController.storyboardInstance()
        controller.showPlayAudio = false
        controller.descriptionContent = ""
        self.container?.navigationController?.pushViewController(controller, animated: true)
    }
    
}