小编han*_*nan的帖子

类型错误:第一个参数必须是字符串、Buffer、ArrayBuffer、Array 或 Array-like Object 类型之一。cryptoJS 中接收到的类型对象

我正在尝试在反应本机上加密和解密数据。所以我决定通过 browserify 在我的 React Native 项目中使用加密节点模块。下面是我用于加密的代码片段,但它抛出错误TypeError: The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object。在 cryptoJS 中接收类型对象。另外,当我在 NodeJS 中使用代码时,它工作正常,但在 React Native 中它会抛出该错误。我在这里做错了什么?我认为错误是从 BUffer.from 语句发起的,该语句认为变量 k 不是数组或更类似于对象。但这是我的想法,我不知道真正的原因是什么。这是代码片段

const algorithm = 'des-ede';
const key = [
      43,
      57,
      97,
      -68,
      -63,
      -61,
      -40,
      9,
      50,
      87,
      -104,
      101,
      63,
      34,
      -78,
      60,
    ];

    var CryptoJS = require('../crypto/crypto');

    var k = new Buffer.from(key);

    let cipher = CryptoJS.createCipheriv(algorithm, k, null);
    cipher.setAutoPadding(true); //default true
    var ciph = …
Run Code Online (Sandbox Code Playgroud)

javascript encryption node.js browserify react-native

6
推荐指数
1
解决办法
6万
查看次数

java.lang.IllegalArgumentException:非法的base64字符a

我有这个字符串数据要进行 Base64 解码

String mfstr = "BZCaRm9ChAbA58sgSwlhzgVuPwboh2qvgcPuLxKJkLpesdHvyZtaheThUSw6%2BHItGBtgimHpXqbn%0ApggBaRR2wisjNiyQrX03eEJlet6%2BqFL6TouRr0wW3NLRZSHOHUSFtJkpq0cyXy%2FSfMVB47y93xlq%0Az845uXSTK2Vi%2FgzwFVphHd%2BTK%2FrO%2FDxJ4EfvAoW0zxeYS%2BCWnIsl%2F4ILehVYasGtxC%2FjbG1I8S%2Fc%0AZoqXIcPmPWrszbG7R1ouDQ473TyCMLx9PBsl1Z%2Bj39V4Qr01ZRw7GVP2m%2Bk4xrHg2Im1OuXpd2vl%0AKGwe5j2T1ZHtoYxCvXOOU1YeJYSR%2Ff7Kd7KbpnjvFT2Ua%2FOdHx%2FKzBoK3Yk97fdvMcelUGMxveKq%0A8C9aCXFVU1xjK81CwB72QWkK5%2B8DCjItVDFcpnVFnhk8ZwlYKU6o8jETDockNMKiDmBYqKGpnNII%0ACnQBGiWy0inWj40k8VoFNIuVK1yYzLoVvFrYR514Ex6U2AK00c0f7C2C5vISsOEp%2BW8KHG2hFW7G%0A97IgwnX3vtQc0s0SaZ%2B7SPgbxwUujlULaOa0t5W9ZDs9b7jDyBZA7m8DiFrLH2YpzpBhrHXcw%2B%2BZ%0A";

String carg = URLDecoder.decode(mfstr, "UTF-8");

byte[] v5 = Base64.getDecoder().decode(carg.getBytes());

Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我收到错误:java.lang.IllegalArgumentException: Illegal base64 character a,到目前为止我已尝试传递StandardCharsets.UTF_8carg.getBytes()没有任何结果。我在这里做错了什么?

java base64 encoding urlencode character-encoding

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