我想在使用 ValueTransforment 和 CryptoKit 将用户信息存储到数据库之前对用户信息进行加密,以避免在应用程序中存储解密密钥。从数据库中获取后需要再次解密存储的信息。
在下面的示例中,我们可以使用签名/非对称来加密 ValueTransformers 中的数据吗?这会避免在应用程序中存储解密密钥吗?存储
class UserEncryptionTransformer: ValueTransformer {
override class func allowsReverseTransformation() -> Bool{
return true
}
override func transformedValue(_ value: Any?) -> Any?{
guard let date = value as? Date else {return nil}
return date.stringlize().data(using: .utf8)?.base64EncodedData()
}
override func reverseTransformedValue(_ value: Any?) -> Any?{
guard let data = value as? Data, let decoded = Data(base64Encoded: data) else {return nil}
return String(data: decoded, encoding: .utf8)?.datelize()
}
}