【问题标题】:How to protect localstorage and websql data in cordova - ionic application如何保护cordova中的localstorage和websql数据-离子应用程序
【发布时间】:2015-09-06 09:00:22
【问题描述】:

存储在本地存储或 WebSql 数据库中的数据不受保护。 我们可以直接看到WebSql和local-storage的所有数据,因为它们是纯文本存储的。

有什么方法可以保护数据吗?

【问题讨论】:

    标签: html local-storage ionic-framework hybrid-mobile-app web-sql


    【解决方案1】:

    是的,您可以使用 AES 或其他算法来加密/解密您的数据。也许你可以尝试实现https://github.com/digitalbazaar/forge#md5

    // generate a random key and IV
    // Note: a key size of 16 bytes will use AES-128, 24 => AES-192, 32 => AES-256
    var key = forge.random.getBytesSync(16);
    var iv = forge.random.getBytesSync(16);
    
    /* alternatively, generate a password-based 16-byte key
    var salt = forge.random.getBytesSync(128);
    var key = forge.pkcs5.pbkdf2('password', salt, numIterations, 16);
    */
    
    // encrypt some bytes using CBC mode
    // (other modes include: CFB, OFB, CTR, and GCM)
    var cipher = forge.cipher.createCipher('AES-CBC', key);
    cipher.start({iv: iv});
    cipher.update(forge.util.createBuffer(someBytes));
    cipher.finish();
    var encrypted = cipher.output;
    // outputs encrypted hex
    console.log(encrypted.toHex());
    
    // decrypt some bytes using CBC mode
    // (other modes include: CFB, OFB, CTR, and GCM)
    var decipher = forge.cipher.createDecipher('AES-CBC', key);
    decipher.start({iv: iv});
    decipher.update(encrypted);
    decipher.finish();
    // outputs decrypted hex
    console.log(decipher.output.toHex());

    【讨论】:

    • 我也有关于 Forge 和加密的教程。 blog.nraboy.com/2014/10/…
    • @Nic Raboy- 我们需要存储一些用于加密的密钥。如果有人获得移动应用程序的密钥和代码,那么解密数据将很容易,因为我们的移动应用程序中有加密和解密代码。对吗?
    • 正确,这就是为什么您必须让用户每次想要使用该应用程序时输入一个密钥。这种方式只有在密钥正确的情况下才会解密?
    • @Nic Raboy- 接受来自用户好主意的密钥,但我还有一个问题。当时用户第一次使用移动应用程序时,他输入 1234 之类的密码,因此我们基于 1234 密钥存储数据以备将来使用第二次他使用应用程序时,他输入了 pin:7485,所以我们使用 7485 解密过去的数据,因此它不会提供正确的数据。所以最终我还需要存储 pin 以检查用户是否输入了正确的 pin。所以我们再次同样的问题
    • 将密码哈希存储为 SHA 并在尝试解密之前进行比较
    猜你喜欢
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 2016-12-11
    • 2017-11-05
    • 2020-02-14
    • 2015-11-02
    相关资源
    最近更新 更多