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}`)}`;
}
import { Base64 } from 'js-base64'; // Remove
// Use require method
export function basicAuth({username}) {
const Base64 = require('js-base64').Base64;
return `Basic ${Base64.encode(`${username}`)}`;
}