前后端分离之密码加密传输 Js参数RSA加密传输,jsencrypt.js的使用

import JSEncrypt from 'jsencrypt/bin/jsencrypt'

 

// 密钥对生成 http://web.chacuo.net/netrsakeypair

 

const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' +

  '2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgkCAwEAAQ=='

 

const privateKey = 'MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8\n' +

  'mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9p\n' +

  'B6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue\n' +

  '/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZ\n' +

  'UBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6\n' +

  'vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha\n' +

  '4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3\n' +

  'tTbklZkD2A=='

 

// 加密

export function encrypt(txt) {

  const encryptor = new JSEncrypt()

  encryptor.setPublicKey(publicKey) // 设置公钥

  return encryptor.encrypt(txt) // 对需要加密的数据进行加密

}

 

// 解密

export function decrypt(txt) {

  const encryptor = new JSEncrypt()

  encryptor.setPrivateKey(privateKey)

  return encryptor.decrypt(txt)

}

公钥加密私钥解密

后端解密

 

// 密码解密

cn.hutool.crypto.asymmetric.RSA;

非对称加密RSA -AsymmetricCrypto

对于非对称加密,最常用的就是RSA和DSA,在Hutool中使用AsymmetricCrypto对象来负责加密解密。

此jar对密码工具类进行了封装


        RSA rsa = new RSA(privateKey, null);
        String password = new String(rsa.decrypt(authUser.getPassword(), KeyType.PrivateKey));

 

你可能感兴趣的:(sringcloud系统整理)