1

我正在尝试实现 setSecret 来加密 indexeddb 中的值,但出现错误:

“无法调用未定义的方法 setSecret”

下面的代码:

 $(window).load(function () {

   //Database Schema
    var db_schema = {
    stores: [
        {
            name: "Employees",
        }
    ]
}

var secret = "Test";
db.setSecret(secret); 

    db = new ydn.db.Storage('Database', db_schema);

});

按照链接,但不确定我哪里出错了任何想法:

之前有人加密过 indexddb 值吗?

谢谢

4

2 回答 2

0

很抱歉后面的文档。我已经更新了文档。现在您必须将加密密钥放入数据库选项中。

var schema = {
    version: 1,
    stores: [{
      name: 'encrypt-store',
      encrypted: true
    }]
};
var options = {
  Encryption: {
    expiration: 1000*15, //  optional data expiration in ms.
    secrets: [{
      name: 'aaaa',
      key: 'aYHF6vfuGHpfWSeRLrPQxZjS5c6HjCscqDqRtZaspJWSMGaW'
    }]
  }
};

var db = new ydn.db.Storage('encrypted-db-name', schema, options);

您必须使用“-crypt”模块才能获得该功能。它支持使用 sha256 加密、每个记录加盐和密钥轮换的透明数据加密。您仍然需要服务器生成加密密钥并安全地发送给客户端。还有一个演示应用程序

于 2013-11-06T15:53:36.160 回答
0
//Database Creation
    //Database Schema
        var db_schema = {
            stores: [{
                name: "DataTable",
                encrypted: true
            }
            ]
        };

        var options = {
            Encryption: {
                //expiration: 1000 * 15, //  optional data expiration in ms.
                secrets: [{
                    name: 'aaaa',
                    key: 'aYHF6vfuGHpfWS*eRLrPQxZjSó~É5c6HjCscqDqRtZasp¡JWSMGaW'
                }]
            }
        };



        //Create the database with the relevant tables using the schema above
        db = new ydn.db.Storage('Database', db_schema,options);   


$.ajax({
                        type: "POST",
                        url: "/home/DownloadData",
                        data: { File: file },
                        success: function (result) {

                             var Key = result.Data.Key;
                             var DownloadedData= {
                                 Data: result.Data,
                                 Data1: result.Data1,
                                 Data2: result.Data2,
                                Data3: result.Data3
                             };
                             db.put('DataTable', DownloadedData, Key);
                             return false;
                        },
                        error: function (error) {
                            alert("fail");
                        }
                    });
于 2013-11-07T11:29:32.477 回答