React Native -在android上使用加密功能

gg58donl  于 2022-12-16  发布在  Android
关注(0)|答案(1)|浏览(127)

我需要在Android上的一个React原生应用程序解密文件。文件使用节点加密'createCipheriv'加密。
是否有可能在react原生中快速解密文件?
我试着用browserify把节点密码转换成浏览器可用的代码,但是太慢了(5秒解密一个文件)。
我还检查了“react-native-crypto”,但它已被弃用,他们提供的解决方案“crypto-browserify”不起作用。
谢谢。

tzdcorbm

tzdcorbm1#

使用这个包https://github.com/margelo/react-native-quick-crypto,它是基于JSI的,像一个本地解决方案一样工作。

const plaintext =
        '32|RmVZZkFUVmpRRkp0TmJaUm56ZU9qcnJkaXNNWVNpTTU*|iXmckfRWZBGWWELw' +
        'eCBsThSsfUHLeRe0KCsK8ooHgxie0zOINpXxfZi/oNG7uq9JWFVCk70gfzQH8ZUJ' +
        'jAfaFg**';
      const cipher = crypto.createCipheriv('des-ede3-cbc', key, iv);
      let ciph = cipher.update(plaintext, 'utf8', 'hex');
      ciph += cipher.final('hex');

      const decipher = crypto.createDecipheriv('des-ede3-cbc', key, iv);
      let txt = decipher.update(ciph, 'hex', 'utf8');
      txt += decipher.final('utf8');

      assert.strictEqual(
        txt,
        plaintext,
        `encryption/decryption with key ${key} and iv ${iv}`
      );

相关问题