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}`)}`;
}
相关推荐
python3 实现js中JSEncrypt encrypt方法,rsa模块根据字符串公钥生成加密字符串 使用时直接调用rsa_encrypt(s, pubkey_str)方法就好了,第一个参数为待加密字符串,第二个参数为公钥,返回值为加密后的字符串 其中_...
通过实例化JSEncrypt对象并加载服务器传来的公钥,前端可以对用户的敏感信息(如密码)进行加密。加密过程使用`encrypt()`方法,输入要加密的数据,返回的是Base64编码的加密结果。 4. **数据传输**:加密后的数据...
本文将详细介绍一个实际案例:如何在前端使用JavaScript库`jsencrypt`进行RSA加密,并在后端使用Java进行解密。这个功能实现的核心知识点包括RSA算法、`jsencrypt`库的使用以及前后端的交互。 首先,RSA是一种非...
var encrypt = new JSEncrypt(); encrypt.generateKeys(); // 生成密钥对 // 设置公钥 var publicKey = '-----BEGIN PUBLIC KEY-----...END PUBLIC KEY-----'; encrypt.setPublicKey(publicKey); // 加密数据 var ...
var encrypt = new JSEncrypt(); // 生成密钥对 encrypt.generateKeys(); // 获取公钥和私钥 var publicKey = encrypt.getPublicKey(); var privateKey = encrypt.getPrivateKey(); // 加密数据 var message = '...
然后,你可以创建一个`JSEncrypt`对象,并设置公钥: ```javascript var encrypt = new JSEncrypt(); encrypt.setPublicKey('-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----'); ``` 这里的`'-----BEGIN ...
**JavaScript RSA 加密...总的来说,`jsencrypt-2.1.0` 提供了一套便捷的前后端 RSA 加密解决方案,为敏感数据的传输提供了安全保障。在实际应用中,还需要结合其他安全措施,如使用 HTTPS,以确保整个通信过程的安全。
- 初始化:创建一个新的`JSEncrypt`对象,并设置公钥或私钥。 ```javascript var encrypt = new JSEncrypt(); encrypt.setPublicKey('your_public_key_string'); // 或者 encrypt.setPrivateKey('your_private_key_...
6. 解密数据:设置私钥并使用`decrypt`方法解密数据,`var decrypt = encrypt.decrypt(encrypted);` 三、JSencrypt的高级用法 1. 自定义公钥和私钥:你可以生成自己的RSA密钥对,使用OpenSSL命令行工具或在线工具...
使用`jsencrypt.min.js`库时,首先需要加载库,然后创建一个`JSencrypt`对象,并设置公钥和私钥。接下来,你可以使用`encryptLong2`方法对长字符串进行加密,得到的结果是分段加密后的Base64编码字符串,可以安全地...
例如,如果要加密字符串,可以调用`encrypt`方法,传入待加密的数据。 5. **解密操作**:类似地,解密操作需要使用`decrypt`方法。加密后的数据通常是以Base64编码的形式返回,因此在易语言中接收加密结果后,需要...
接着,创建一个JsEncrypt对象,设置公钥(public key)并调用encrypt()方法进行加密,解密则使用decrypt()方法并设置私钥(private key)。以下是一个简单的示例: ```javascript const JSEncrypt = require('./...
var encrypt = new JSEncrypt(); encrypt.setPublicKey('your_public_key'); var encrypted = encrypt.encrypt('plaintext'); ``` 4. **解密数据**:如果需要在服务器端解密,可以用私钥执行解密操作。在...
`jsencrypt`库提供了简单易用的API,例如创建`JSencrypt`对象,设置公钥,然后调用`encrypt`方法对字符串进行加密: ```javascript var encrypt = new JSEncrypt(); encrypt.setPublicKey('your_public_key'); var ...
4. **接口使用**:JSencrypt.min.js 提供了简单的API,例如`new JSEncrypt()`用于创建加密对象,`.setPublicKey()`设置公钥,`.encrypt()`执行加密,以及`.decrypt()`进行解密。 5. **兼容性**:JSencrypt.min.js ...
var encrypt = new JSEncrypt(); encrypt.setPublicKey('-----BEGIN PUBLIC KEY-----...END PUBLIC KEY-----'); var encrypted = encrypt.encrypt('明文数据'); // 后端接收到encrypted后,使用私钥解密 var ...
var encrypt = new JSEncrypt(); // 生成RSA密钥对 encrypt.setPublicKey('你的公钥字符串'); // 或者 // encrypt.generateKeys(); // 加密数据 var encrypted = encrypt.encrypt('要加密的文本'); // 将加密后的...