0

我想在使用 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()
    }
}
4

0 回答 0