JSEncrypt encrypt return false排查并解决

2018-04-11写道
今天测试环境JSEncrypt加密算法无缘返回 false,导致加密算法错误,无法正确调用接口。

加密代码片段:

var ras = new JSEncrypt();
ras.setPublicKey('MIIBxxxxB');
console.log(ras, ras.encrypt(222));

 此段代码在生产环境好好的,正确返回加密结果:ras结构:

测试环境返回加密结果为:false

Chrome Debug调试结果:

经过debug调试,不断回滚代码,发现与 base64 代码有冲突,导致解密不正确。

关于冲突部分,会空闲时间继续跟踪查找源头。

解决方案:

移除import {Base64}更换为 require('js-base64').Base64

写道
// Remove import method, separate the code socpe
import { Base64 } from 'js-base64'; // Remove


// Use require method
export function basicAuth({username}) {
  const Base64 = require('js-base64').Base64;
  return `Basic ${Base64.encode(`${username}`)}`;
}

猜你喜欢

转载自qiaolevip.iteye.com/blog/2418271