小编el3*_*tro的帖子

核心数据加密

我有一个关于核心数据加密的问题.我将一些敏感的用户数据存储在Core Data SQLite数据库中.关键值都是可转换的,我正在使用AES256来"加速"加密和解密它们,包括每个值的单个IV.加密密钥是用户选择的密码的SHA512哈希值.到目前为止,这非常有效.

现在关于用户密码.当用户启动应用程序时,系统会要求他输入密码.密码使用SHA512进行哈希处理并存储在iOS钥匙串中.对于每次写入或读取操作,NSValueTransformer将从钥匙串获取密码.如果应用程序正在关闭,我会从钥匙串中删除密码哈希.

在我的核心数据库中,我有一个特殊的实体,它有一个随机数!= 0,因为它是唯一的值.要测试用户是否输入了正确的密码,我会获取此实体并读取该数字.如果是=!0,我知道密码是正确的,因为当解密失败时,NSValueTransformer总是返回0.

现在我的实际问题:你认为这是一个很好的加密方法吗?如果输入的密码是正确的,您还要怎么测试?

我有点担心在应用程序运行时将密码哈希存储在钥匙串中会使一切变慢,因为NSValueTransformer必须始终访问钥匙串.将密码哈希保存在内存中是否足够安全,因此当应用程序关闭时它将被删除?

encryption core-data ios nsvaluetransformer

7
推荐指数
1
解决办法
3983
查看次数

标签 统计

core-data ×1

encryption ×1

ios ×1

nsvaluetransformer ×1