如何快速播放目录中保存的本地加密 AES128 文件?

问题描述

如何快速播放目录中保存的本地加密 AES128 文件?我希望这可以异步和逐块完成。我把我写的代码放在下面。

我的代码的问题是,当解码新块时,玩家没有注意到并且不会继续。但是该文件在目录中运行。 您认为这样做的最佳实践是什么?我没有找到任何好的解释。

// 从目录中分块数据

    func chunkData(path: URL) {
        do
        {
            let data = try Data(contentsOf: path)
            let dataLen = (data as NSData).length
            let fullChunks = Int(dataLen / 10240)
            let totalChunks = fullChunks + (dataLen % 10240 != 0 ? 1 : 0)
            
            var chunks:[Data] = [Data]()
            for chunkCounter in 0..<totalChunks
            {
                var chunk:Data
                let chunkBase = chunkCounter * 10240
                var diff = 10240
                if chunkCounter == totalChunks - 1
                {
                    diff = dataLen - chunkBase
                }
                
                let range:Range<Data.Index> = chunkBase..<(chunkBase + diff)
                chunk = data.subdata(in: range)
                
                chunks.append(chunk)
            }
            print(chunks)
            dataArray = chunks
            decryptFile(data: dataArray[0])
        }
        catch
        {
        }
    }

// 用于解密文件

    static func aesDecrypt_file(data: Data) throws -> String {

        let fileData = data
        let decrypted = try AES(key: FILE_DECODE_KEY.bytes,blockMode: CTR(iv: "0000000000000000".bytes),padding: .nopadding).decrypt([UInt8](fileData))
        let base = decrypted.toBase64()
        return base ?? ""
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)