vue 使用jsrsasign加密,提示KJUR is not defined

//安装
npm install jsrsasign --save

//main.js使用
import jsrsasign from "jsrsasign/lib/jsrsasign-all-min";
Vue.prototype.jsrsasign =jsrsasign;

报错
clipboard.png

阅读 12.6k
1 个回答

一、生成一对秘钥

生成链接

将生成的秘钥暴露出去(如图):

image

二、在项目中引入SRA.js

文件下载地址

注意(重)

// 在文件底部 把这几个方法暴露出去
const RSA = {
    RSAKey : RSAKey,
    KEYUTIL : KEYUTIL,
    hex2b64 : hex2b64,
    b64tohex : b64tohex
}
export  {RSA}

三、封装方法

解释:

1. {Rsa,Rsas} 分别是公钥和私钥
2. {RSA} 指的是RSA.js中的加密的方法
/**
 *  加密
 */

import {Rsa,Rsas} from './config.js'
import {RSA} from './Rsa.js'
var ext = {
  /*
    加密
  */
  en: function (deStr) {
    var encrypt_rsa = new RSA.RSAKey();
    encrypt_rsa = RSA.KEYUTIL.getKey(Rsa.may_key);
    var encStr = encrypt_rsa.encrypt(deStr)
    encStr = RSA.hex2b64(encStr);
    return encStr
  },

  /*
    解密
  */
  de: function (encStr) {
    var decrypt_rsa = new RSA.RSAKey();
    decrypt_rsa = RSA.KEYUTIL.getKey(Rsas.may_key);
    encStr = RSA.b64tohex(encStr)
    var decStr = decrypt_rsa.decrypt(encStr)
    return decStr
  }
}
export  {ext}

四、如何调用

import {ext} from '../../../../api/encrypt';

get_over () {
  let a = ext.en(this.test)
  let b = ext.de(a)
  console.log(a,'加密后的结果')
  console.log(b,'解密后的结果')
},

五、结尾

解释: 正常来说,前段一般用公钥加密,把加密后的数据,传给后端,后端用私钥去解密。完成交互

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题