问题描述
如何快速播放目录中保存的本地加密 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 (将#修改为@)