JSEncrypt encrypt return false排查并解决

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

 

加密代码片段:

 

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

 

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

JSEncrypt encrypt return false排查并解决_第1张图片

 

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

JSEncrypt encrypt return false排查并解决_第2张图片

 

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}`)}`;
}

 


更多实例应用扫码体验:

JSEncrypt encrypt return false排查并解决_第3张图片

  • JSEncrypt encrypt return false排查并解决_第4张图片
  • 大小: 25.3 KB
  • JSEncrypt encrypt return false排查并解决_第5张图片
  • 大小: 23.6 KB
  • JSEncrypt encrypt return false排查并解决_第6张图片
  • 大小: 9.7 KB
  • JSEncrypt encrypt return false排查并解决_第7张图片
  • 大小: 375.8 KB
  • 查看图片附件

你可能感兴趣的:(乔乐共享,纵观千象,每天进步一点点,学习永无止境,JSEncrypt)