关于加密:使用Xamarin安全的跨平台存储选项

Secure cross-platform storage options using Xamarin

我目前正在将Xamarin作为开发平板电脑应用程序的一个选项进行审查(目前的目标是iOS和Android,但将来会考虑将其移植到Win8平板电脑上)

要存储的数据非常敏感,所以安全性是我的主要关注点。

到目前为止,我正在考虑两种选择:

a)sqlite+sqlcipher:假设win8平板电脑支持sqlite,sqlcipher也可以在win8上工作。

b)独立存储+dpapi:假设此dpapi方法在Mono平台上可用,并且在Win8平板电脑上仍然可用。

我担心的是,为了安全地存储密钥,我想我仍然需要为每个平台提供单独的实现(iOS上的数据保护,我仍在审查Android和Win8平板电脑的选项)。

是否有任何跨平台解决方案可以安全地存储加密密钥,或者其他完全跨平台的方法来安全地存储数据?如果没有完全跨平台的解决方案,那么在每个平台上使用任何推荐的选项?


我已经写了一个插件来处理安全存储。它跨平台工作,并在每个平台上本地保护数据。它是开源的。

请检查一下。https://www.nuget.org/packages/sameeriotapps.plugin.securestorage/

博客:https://sameer.blog/2018/01/19/whats-new-in-secure-storage-2-0/

如果有任何问题,请告诉我。


我们在解决方案中使用sqlite+sqlcipher,它在跨平台环境中工作得非常好。如果我没有弄错,那么使用sqlcipher没有问题,因为它使用的是aes。我建议你无论如何检查一下,但我不认为这是个问题。sqlcipher本身并不会使数据无法读取,如果允许使用sqlcipher的密码选项,可能会出现问题,但仍然如此。对于AES来说,获得许可的过程非常简单,可以在几天内完成。