相关疑难解决方法(0)

Xamarin.iOS/Akavache - 带有自定义EncryptionProvider的加密缓存

我有一个Xamarin.iOS应用程序,它使用Akavache缓存数据并减少不必要的服务器请求数据的数量.一切都像预期的那样运作得很好BlobCache.LocalMachine,喜欢它.

现在我想确保加密后的数据处于静止状态.从在线研究和阅读文档,我发现默认实现并没有实际加密iOS上的缓存,我实际上需要提供自定义实现IEncryptionProvider.

我跟着这篇文章:http://kent-boogaart.com/blog/password-protected-encryption-provider-for-akavache

添加了此线程的输入:https://github.com/akavache/Akavache/issues/190

结束了这个实现:

    public interface IPasswordProtectedEncryptionProvider : IEncryptionProvider
    {
        void SetPassword(string password);
    }

    public sealed class MyEncryptionProvider : IPasswordProtectedEncryptionProvider
    {
        static readonly byte[] salt = Encoding.ASCII.GetBytes("dVBZMQWyFRcJOIas");
        readonly IScheduler scheduler;
        readonly SymmetricAlgorithm symmetricAlgorithm;
        ICryptoTransform decryptTransform;
        ICryptoTransform encryptTransform;

        public MyEncryptionProvider()
        {
            scheduler = BlobCache.TaskpoolScheduler ?? throw new ArgumentNullException(nameof(scheduler), "Scheduler instance is null");
            symmetricAlgorithm = new RijndaelManaged();
            var securePassword = "kadhaskdhsakhaskjdhaskjdhaskdjashdkjahkfghkjhew";
            SetPassword(securePassword);
        }

        public void SetPassword(string password)
        {
            if(password == null) …
Run Code Online (Sandbox Code Playgroud)

encryption xamarin.ios ios akavache

6
推荐指数
1
解决办法
407
查看次数

标签 统计

akavache ×1

encryption ×1

ios ×1

xamarin.ios ×1