`

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
分享到:
评论

相关推荐

    python 3 实现js中JSEncrypt encrypt方法,rsa模块根据字符串公钥生成加密字符串

    python3 实现js中JSEncrypt encrypt方法,rsa模块根据字符串公钥生成加密字符串 使用时直接调用rsa_encrypt(s, pubkey_str)方法就好了,第一个参数为待加密字符串,第二个参数为公钥,返回值为加密后的字符串 其中_...

    RSA算法加密时,前端JSEncrypt加密

    通过实例化JSEncrypt对象并加载服务器传来的公钥,前端可以对用户的敏感信息(如密码)进行加密。加密过程使用`encrypt()`方法,输入要加密的数据,返回的是Base64编码的加密结果。 4. **数据传输**:加密后的数据...

    前端使用jsencrypt加密后端使用java RSA解密功能实现源码

    本文将详细介绍一个实际案例:如何在前端使用JavaScript库`jsencrypt`进行RSA加密,并在后端使用Java进行解密。这个功能实现的核心知识点包括RSA算法、`jsencrypt`库的使用以及前后端的交互。 首先,RSA是一种非...

    jsencrypt-2.1.0.rar

    **JavaScript RSA 加密...总的来说,`jsencrypt-2.1.0` 提供了一套便捷的前后端 RSA 加密解决方案,为敏感数据的传输提供了安全保障。在实际应用中,还需要结合其他安全措施,如使用 HTTPS,以确保整个通信过程的安全。

    jsencrypt.js 下载jsencrypt.js 下载

    var encrypt = new JSEncrypt(); encrypt.generateKeys(); // 生成密钥对 // 设置公钥 var publicKey = '-----BEGIN PUBLIC KEY-----...END PUBLIC KEY-----'; encrypt.setPublicKey(publicKey); // 加密数据 var ...

    jsencrypt.min.js

    var encrypt = new JSEncrypt(); // 生成密钥对 encrypt.generateKeys(); // 获取公钥和私钥 var publicKey = encrypt.getPublicKey(); var privateKey = encrypt.getPrivateKey(); // 加密数据 var message = '...

    jsencrypt.min.js通过JSEncrypt分段加密解密

    然后,你可以创建一个`JSEncrypt`对象,并设置公钥: ```javascript var encrypt = new JSEncrypt(); encrypt.setPublicKey('-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----'); ``` 这里的`'-----BEGIN ...

    jsencrypt-master.zip

    - 初始化:创建一个新的`JSEncrypt`对象,并设置公钥或私钥。 ```javascript var encrypt = new JSEncrypt(); encrypt.setPublicKey('your_public_key_string'); // 或者 encrypt.setPrivateKey('your_private_key_...

    jsencrypt.zip

    6. 解密数据:设置私钥并使用`decrypt`方法解密数据,`var decrypt = encrypt.decrypt(encrypted);` 三、JSencrypt的高级用法 1. 自定义公钥和私钥:你可以生成自己的RSA密钥对,使用OpenSSL命令行工具或在线工具...

    rsa加解密,jsencrypt.min.js库,分段 和 不分段都有

    使用`jsencrypt.min.js`库时,首先需要加载库,然后创建一个`JSencrypt`对象,并设置公钥和私钥。接下来,你可以使用`encryptLong2`方法对长字符串进行加密,得到的结果是分段加密后的Base64编码字符串,可以安全地...

    易语言调用JSEncrypt实现RSA加密解密

    例如,如果要加密字符串,可以调用`encrypt`方法,传入待加密的数据。 5. **解密操作**:类似地,解密操作需要使用`decrypt`方法。加密后的数据通常是以Base64编码的形式返回,因此在易语言中接收加密结果后,需要...

    小程序加密jsencrypt.js.rar

    接着,创建一个JsEncrypt对象,设置公钥(public key)并调用encrypt()方法进行加密,解密则使用decrypt()方法并设置私钥(private key)。以下是一个简单的示例: ```javascript const JSEncrypt = require('./...

    jsencrypt.js资源

    var encrypt = new JSEncrypt(); encrypt.setPublicKey('your_public_key'); var encrypted = encrypt.encrypt('plaintext'); ``` 4. **解密数据**:如果需要在服务器端解密,可以用私钥执行解密操作。在...

    js jsencrypt.min.js 文件

    `jsencrypt`库提供了简单易用的API,例如创建`JSencrypt`对象,设置公钥,然后调用`encrypt`方法对字符串进行加密: ```javascript var encrypt = new JSEncrypt(); encrypt.setPublicKey('your_public_key'); var ...

    jsencrypt.min.rar

    4. **接口使用**:JSencrypt.min.js 提供了简单的API,例如`new JSEncrypt()`用于创建加密对象,`.setPublicKey()`设置公钥,`.encrypt()`执行加密,以及`.decrypt()`进行解密。 5. **兼容性**:JSencrypt.min.js ...

    jsencrypt-2.1.0.zip

    var encrypt = new JSEncrypt(); encrypt.setPublicKey('-----BEGIN PUBLIC KEY-----...END PUBLIC KEY-----'); var encrypted = encrypt.encrypt('明文数据'); // 后端接收到encrypted后,使用私钥解密 var ...

    jsencrypt.js

    var encrypt = new JSEncrypt(); // 生成RSA密钥对 encrypt.setPublicKey('你的公钥字符串'); // 或者 // encrypt.generateKeys(); // 加密数据 var encrypted = encrypt.encrypt('要加密的文本'); // 将加密后的...

Global site tag (gtag.js) - Google Analytics