gpt4 book ai didi

swift - NSSecureCoding 与钥匙串(keychain)

转载 作者:行者123 更新时间:2023-11-28 12:04:24 25 4
gpt4 key购买 nike

我知道使用“NSSecureCoding”可以将数据安全地存储到磁盘,类似于钥匙串(keychain)作为信息安全存储的地方。

我还了解钥匙串(keychain)具有在同一提供商的应用程序之间共享的优势。如果忽略钥匙串(keychain)共享功能,是否可以说,与 NSSecureCoding 相比,将数据存储在钥匙串(keychain)中同样安全?

我有一个用户对象

class User: NSObject, NSSecureCoding {

private enum CodingKeys: String, CodingKey {
case test
}

public static var supportsSecureCoding: Bool {

return true
}

override init() {}

var test: String = "teeees"


func encode(with aCoder: NSCoder) {

aCoder.encode(self.test as NSString)
}

required init?(coder aDecoder: NSCoder) {

test = aDecoder.decodeObject(of: NSString.self, forKey: CodingKeys.test.rawValue)! as String
}
}

我存档

let user = User()
let data = NSKeyedArchiver.archivedData(withRootObject: user)

try! data.write(to: DocumentHelper.cashURLForID(id: "TTYYUU"))

TTYYUU的内容是:

6270 6c69 7374 3030 d401 0203 0405 06151658 2476 6572 7369 6f6e 5824 6f62 6a656374 7359 2461 7263 6869 7665 7254 24746f70 1200 0186 a0a4 0708 0d0e 5524 6e756c6c d209 0a0b 0c52 2430 5624 636c 61737380 0280 0356 7465 6565 6573 d20f 1011125a 2463 6c61 7373 6e61 6d65 5824 636c6173 7365 735f 1011 5365 6375 7265 436f6469 6e67 2e55 7365 72a2 1314 5f10 11536563 7572 6543 6f64 696e 672e 5573 6572584e 534f 626a 6563 745f 100f 4e53 4b657965 6441 7263 6869 7665 72d1 1718 54726f6f 7480 0108 111a 232d 3237 3c42 474a5153 555c 616c 7589 8ca0 a9bb bec3 00000000 0000 0101 0000 0000 0000 0019 00000000 0000 0000 0000 0000 0000 00c5

谁能展示解码原始信息的方法,它说格式是“NSPropertyList Binary Format_v1_0”,有人能展示如何从这个二进制文件中提取“teeees”吗?

最佳答案

类不是“安全的”,因为它的名称中包含此文本。没有详细描述如何、为什么(例如加密、完整性保护等)及其限制的安全性是无用的。该文档明确指出它仅能安全地防止对象替换攻击

这完全意味着替换文件或更改内容并不容易。

从来没有在任何地方声明它可以用于“将数据安全地存储到磁盘”。因此,NSSecureCoding 与 Keychain 相比用于完全不同的用例,Keychain 致力于为“一个或多个用户提供密码、 key 、证书和注释的安全存储”。

编辑:查看您添加的编码数据示例,它包含大量明文数据,包括 teeees。您可以使用任何十六进制编辑器或 strings 命令查看它。

关于swift - NSSecureCoding 与钥匙串(keychain),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49693795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com