如何在ydn-db数据库库中使用加密?

时间:2013-11-05 12:02:30

标签: client-side ydn-db encryption

我正在尝试实现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);

});

关注link,但不确定我的错误在哪里:

有人在之前加上indexddb值?

由于

2 个答案:

答案 0 :(得分:0)

对不起背后的文档。我更新了documentation。现在,您必须将加密密钥放在数据库选项中。

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" module才能获得该功能。它支持使用sha256加密,每次记录盐析和密钥轮换的透明数据加密。您仍然需要服务器生成加密密钥并安全地发送给客户端。还有demo app

答案 1 :(得分: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");
                        }
                    });