`

JSEncrypt encrypt return false排查并解决

    博客分类:
  • js
阅读更多
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}`)}`;
}

 


更多实例应用扫码体验:

  • 大小: 25.3 KB
  • 大小: 23.6 KB
  • 大小: 9.7 KB
  • 大小: 375.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics