标签: sjcl

为什么 SJCL 在尝试解码此 JSON 片段时报告“这不是 JSON”?

我正在使用SJCL,它适用于小 ASCII 字符串。

但是当我尝试解码这段 JSON(HTML 页面加密的结果)时,出现"this is not JSON!"错误。

JSON 是由 SJCL 生成的,虽然我确实使用 LZW 和 base64 对其进行了编码和解码,但对于具有相同工作流程的小字符串,我没有收到此错误。

我跟踪了解码函数的错误消息来源。我认为正则表达式失败了,但我不明白为什么,因为这对我来说似乎是一个完美的 JSON 字符串。

但是,我可能是错误的,就好像我对它进行了 JavaScript 评估一样,它会因语法错误而失败。但是,如果我将它转储到一个文件中,Python 就可以很好地解析它。

json sjcl

5
推荐指数
1
解决办法
786
查看次数

使用 SJCL 客户端加密文件

我在使用 SJCL 和 javascript 加密文件时遇到问题。

我设法使用 FileReader API 和 readAsBinaryString 加密文本文件。当涉及到加密 pdf/png/.. 时,可能由于编码而出现问题。

我发现我可以使用完美适合这项任务的 readAsArrayBuffer,所以我基本上读取文件并创建新的类型化数组,new Uint8Array()但我不知道我应该如何加密这样的数据。

这是我的代码:

/** Convert from an array of bytes to a bitArray. */
function toBitArrayCodec(bytes) {
    var out = [], i, tmp=0;
    for (i=0; i<bytes.length; i++) {
        tmp = tmp << 8 | bytes[i];
        if ((i&3) === 3) {
            out.push(tmp);
            tmp = 0;
        }
    }
    if (i&3) {
        out.push(sjcl.bitArray.partial(8*(i&3), tmp));
    }
    return out;
}

/** Convert from a bitArray to an array of …
Run Code Online (Sandbox Code Playgroud)

javascript encryption encoding typed-arrays sjcl

5
推荐指数
1
解决办法
2004
查看次数

为什么我无法在 React Native 中捕获导入错误?

这段代码在 React Native 中失败,但在 Node 中没有:

try {
  return require('module-does-not-exist');
}catch (e) {
  return null;
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么?

我为什么关心:

我正在尝试在我的 React Native 应用程序中使用斯坦福 JavaScript 加密库,但它在导入时失败,因为它使用此模式来选择使用crypto内置节点。(源代码

似乎其他人之前也遇到过这个问题:https : //github.com/davidbau/seedrandom/pull/44

commonjs sjcl react-native

5
推荐指数
0
解决办法
263
查看次数

这个用于解密 AES-CCM 加密字符串的 JS 函数的 Python 等效项是什么?

我\xe2\x80\x99d喜欢在Python 3中解密AES加密的字符串(CCM模式)。

\n

以下 JavaScript 代码使用sjcl库的 JavaScript 代码可以正常工作:

\n
const sjcl = require(\'sjcl\');\n\nconst key = "ef530e1d82c154170296467bfe40cdb47b9ad77e685bbf8336b145dfa0e85640";\nconst keyArray = sjcl.codec.hex.toBits(key);\nconst iv = sjcl.codec.base64.fromBits(sjcl.codec.hex.toBits(key.substr(0,16))); \nconst params = {\n    "iv": iv,\n    "v": 1,\n    "iter": 1000,\n    "ks": 256,\n    "ts": 128,\n    "mode": "ccm",\n    "adata": "",\n    "cipher": "aes",\n    "salt": "",\n};\n\nfunction encrypt(data) {\n    const ct = JSON.parse(sjcl.encrypt(keyArray, data, params)).ct;\n    return sjcl.codec.hex.fromBits(sjcl.codec.base64.toBits(ct));\n}\n\nfunction decrypt(data) {\n    const ct = sjcl.codec.base64.fromBits(sjcl.codec.hex.toBits(data));\n    const paramsWithCt = JSON.stringify({ ...params, ...{ "ct": ct } });\n    return sjcl.decrypt(keyArray, paramsWithCt);\n}\n\nlet ct = encrypt("my secret string");\nconsole.log("Cipher …
Run Code Online (Sandbox Code Playgroud)

javascript python encryption aes sjcl

3
推荐指数
1
解决办法
588
查看次数

是使用AES或SHA256的sjcl.encrypt

我正在使用SJCL库来加密/解密消息.我的问题是我不知道哪个使用AES或SHA256

这是我的代码:

var h = sjcl.codec.hex, count = 2048 ;
salt = h.fromBits(sjcl.random.randomWords('10','0'));
var key = h.fromBits( sjcl.misc.pbkdf2(somePassword, h.toBits(salt), count) ) ;
Run Code Online (Sandbox Code Playgroud)

接下来我可以加密/解密

var encMessage = sjcl.encrypt(key, message) ;
sjcl.decrypt(key, encMessage) ;
Run Code Online (Sandbox Code Playgroud)

AES或SHA256还是其他什么?

javascript encryption aes sha256 sjcl

1
推荐指数
2
解决办法
4059
查看次数

在Angular2中使用SJCL库

在我的应用程序中,我想使用"斯坦福Javascript加密库",它有一个打字,我也看到https://github.com/Evgenus/sjcl-typescript-definitions.

我不明白我如何在我的项目中使用它.我如何sjcl.encrypt("password", "data")在我的项目中使用该命令 .

我使用角4,角度cli beta 2

我跑了 npm install --save-dev @types/sjcl

tsconfig.app.json

{
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "module": "es2015",
    "baseUrl": "",
    "types": [ "sjcl" ]
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ],
  "extends": "../tsconfig.json"
}
Run Code Online (Sandbox Code Playgroud)

sjcl angular

0
推荐指数
1
解决办法
1105
查看次数