微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何快速播放目录中保存的本地加密 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 举报,一经查实,本站将立刻删除。