vue 前端 RSA 加密解密 jsencrypt.js

参考地址:https://www.cnblogs.com/e0yu/p/14720937.html
**1、引用jsencrypt.min.js,**将jsencrypt.js文件放在public文件中,然后引用
如果找不到下载位置的话,可以在海康开放平台下载 web1.5.2,下载下来的文件中包含jsencrypt.min.js

<script type="text/javaScript" src="./js/jsencrypt.min.js"></script>

2、具体代码

<template>
  <div>
       <div class="animation" ref="lottie"></div>
    </div>

</template>

<script>
  import lottie from 'lottie-web'

  import * as animationData from '@/assets/json/animation_lkbwx7nf.json'
 


  export default {
  
    data() {
      return {
        ApiUrl:ApiUrl,
     
      }
    },
    mounted() {
      
      //lottie动画
      this.animationLottie('lottie',animationData.default)

     
      this.createKey()
    },
    methods: {
      animationLottie(name,path){
        var animation = lottie.loadAnimation({
        container: this.$refs[name],//当前需要渲染的DOM
        renderer: "svg",//渲染方式,默认为svg,还可以渲染为html和canvas
        loop: true,//循环播放
        autoplay: true,//自动播放
        animationData: path
        // animationData和path二选一
        // 1. animationData: anData.default,//本地动画
        // 2. path:''//网络json地址
      })
      },


      createKey() {
        //参考地址https://www.cnblogs.com/e0yu/p/14720937.html
        //在public/index.html中引入jsencrypt.min.js
       
        //公钥
        var PUBLIC_KEY ='MIIBCgKCAQEAvD5yBPdCXEF5o3GjPC+O/xTvVwwQtymvPEZAVl25LlzY5YC77cF26z5MhGx55sL+QI22B33xmIgu8s4tPlSRRFngeF+weHMDga9D9/N4SWDmrx8Xf9MgAy2KnjgJf1evpbnay9KItiTiEUC174g1f0zrUpEgk9LcIQIERv7CAajWMpmOyims0AQ5uvzPkEFLQsZ0kDVMJrT+shEkFDtT9vv/5kMjkSQiyw3cDnamG5XU3NcNNQVDmg41zcPNxMSSZuEx5ySmiUQyq3zr5OUw+bH7F/ZNNoAfQGhYDxD4sZXKE9PKpPSklgRA/dXwbiv0F3vmPev1zgfYHI+qSSF7fQIDAQAB'
        //私钥
        var PRIVATE_KEY ='MIIEpAIBAAKCAQEAvD5yBPdCXEF5o3GjPC+O/xTvVwwQtymvPEZAVl25LlzY5YC77cF26z5MhGx55sL+QI22B33xmIgu8s4tPlSRRFngeF+weHMDga9D9/N4SWDmrx8Xf9MgAy2KnjgJf1evpbnay9KItiTiEUC174g1f0zrUpEgk9LcIQIERv7CAajWMpmOyims0AQ5uvzPkEFLQsZ0kDVMJrT+shEkFDtT9vv/5kMjkSQiyw3cDnamG5XU3NcNNQVDmg41zcPNxMSSZuEx5ySmiUQyq3zr5OUw+bH7F/ZNNoAfQGhYDxD4sZXKE9PKpPSklgRA/dXwbiv0F3vmPev1zgfYHI+qSSF7fQIDAQABAoIBAQCDDNIiBOUtBuQg1kb26oEZskBhkGO+sAVv59R4i+0UiszxEatDfTFF2mw4sLA4571LwZxdIN/l+cD9hm3W+9baB9wO0Ucww5lIWnTuFJDEPPK8LeAVPC0IKVdciNSL08bTkEzzItHMRGch7bP7Ww8rXahiJejRILXhQN8rccYskmLv48X3eAxpCwK3h0ey3C3pI12fKBumfEZiHX951lRF2qDHr7XdyOMn4T9nJyBvYdlCPYbIzh2Agm1F9Mfn2oOaa4h/VjrtLurTdpt+iO4r5GvhwnLSjnLTRiOIZQJQ/5QwNbGa49jgE/YpkPUTSjmILjUnV0jbLu/6aTqR9hxdAoGBAPiPjuChTSfPDhG78JMoAl/IkXATrxcLBur/8BERlcu+7hZJVeqGJDqaFW6jdi/HFAUmsqFJdcLg/RkPyao9vfwY0PxCrz/IQnm3PkrnN5mulv9LgWuEbc1Sfn7p2TGlk3es7U07n3hoKusIzhK4HzBvRfu4UhZe4lct7BTqonEvAoGBAMHgvz9UoeWc3BPtsABynZKH2fVoJwHkwTYG7xPJ01VwUlQ7DUwt3hWf4UZnGWZO1qJea/d9q6VKqRBZ1/gEOe+hu7Eva8+PB+IdKyXaHnrBzUo3ZkukRc9GLI7ZAb1w30wXP3JzMblObVcdm8dPkGMc1fphiAdhrm1Nl5N9BvsTAoGAYCEVPubjMhwv8sfeuOrmUCj/pnrWYnEPUd999vv4FP5YkiH2qmcKp+djlpB9aujxYzSeLSZ99sqQ2Bp1AfQy/8aRPJ6FrINEwlIOM2XM6RDOsRmAihaDaL8Y0Pib2UmSCNzGQfJnMGgJATE8kZzH4zGFvV6B0MkNfG30OfqsrF0CgYB71BISXvmwb8lYqR0ajBn8NuyNA2K2oOaOnUshtmxWS5Ep3zWVDE6mPSFjGAJvB7eqqOgIgKmavt7QZLG95OUkGoaImqMfRFlioAKpAHErMpDt8AhUE63KvyVCb3PfDTJxpP+PF+gQVPkdBPo0CKtNwmMgsh5xqIABq+c9+kL1JQKBgQDXAStvmcT2e97bnQVpMVxDjwTRNlPyTIF8glrHCLR9J7Rf8nm6WaeIFqZK/cWkz/ArGxGmtaCtHn7eJCaHF9WeUfdf4Y6A2E3RNsI/Fe8DvJwsLRgbIfUOOMhYMyUKpj1lgWwt1aCuViGh0tZUIuWBsKsD49OY5kkT36iR0UmUKw=='
        
        //使用公钥加密
        var encrypt = new JSEncrypt();
        // encrypt.setPrivateKey('-----BEGIN RSA PRIVATE KEY-----'+PRIVATE_KEY+'-----END RSA PRIVATE KEY-----');
        encrypt.setPublicKey('-----BEGIN PUBLIC KEY-----' + PUBLIC_KEY + '-----END PUBLIC KEY-----');
        // encrypt.setPublicKey(PUBLIC_KEY );
        var str = "123456"
        var encrypted = encrypt.encrypt(JSON.stringify(str));//可以不序列化,序列化后解密没有反序列化会有双引号
        console.log('加密前数据:%o', str);
        console.log('加密后数据:%o', encrypted);

        //使用私钥解密
        var decrypt = new JSEncrypt();
        // decrypt.setPublicKey('-----BEGIN PUBLIC KEY-----' + PUBLIC_KEY + '-----END PUBLIC KEY-----');
        decrypt.setPrivateKey('-----BEGIN RSA PRIVATE KEY-----' + PRIVATE_KEY + '-----END RSA PRIVATE KEY-----');
        var strJ="eoOQGjMj0CSaXOewSAYirkf5ngTrtPDKqLhQM+0KLKL4EKnGhAskguv+Gl3kWDALah+GHO1lnCfTdO+9FW4TzKU/AUoKwxedc/NzwZZI6AoFmAgaZndRxet81MGivvdmcvZ2AGpOq6XWKDbB2z5yP5XJKwM+6NOghPnlrK5pcCy8SiFs5WSydwJ+yxtoVluOFvFoFGJd9GQ1W03j29x5WC56ZWES1usFiFS6psv4vUevVesSasQUpmmVrq3+cGoLSP3O+AK2TU8+p/Yd3BuUciW6zMTi1ax3LEzum2wExuhmOPjoK+moQ1H8YW1jEKAFL7ZTcfyorCOFn1XdGJC6xA=="
  
        var uncrypted = decrypt.decrypt(encrypted);//string 类型
        console.log("解密数据:"+uncrypted );
       
       
        // var key="-----BEGIN RSA PRIVATE KEY-----Proc-Type: 4,ENCRYPTEDDEK-Info: DES-EDE3-CBC,ED2B255140B5BA8BZeJ7tAsh85y2FbhquOjnLY5LHUry6RDk6eKbZWh0GKzxF5my9ESOwLdvO7WMvSlApbzv0pCs5DzrRCRuCoTBvbejShbAvlE4VqC+8d2VDNfuP7edhwnasaD3p20QKU1QSaJFX77xUB8VNiSZDfzC0NCqescF/xUO+dDrtUtl39JcbW5dzL7lYkWBOaMZlTzZgVecLylzp4hgXPdhN0QV0ajOagOgz7btKNlIzCG4me6gxrH3pavKKNksX0l/Kq1ntEPRcz8n2KUmW2imSfz1x9xZPH5BTdlw1evk7z840SmNvKhRNPVqFYG/UMeqFbt2e/E1o4MuDBk7I9JLXWiByDONjhQdibTJ6niKTviUsMBoqp6w8HiUeUCvM5Wqn++jeb6XOPlrut+8ud7qqyV40sRin5iqnr0AaBcKS33XeZeZ10gd/dpGi9Y0PUxzcF9lpxw/dKj7Up3VQM7CHXW/LU/CiRl03AJsfjKyhtC1igcQYSH9HXjP96pQpuSdiQcq3RW47s+TcyuCUoYTg/UZb10eaC9zhs+l330Md/XyDa+/yXsp8wKEMV27mFCWEdPYdUalb4pTdmQPAKGFCfy82Out7lSSVr2ukWwmg4fohwAkTEFNi/d5/uG8PY/zENR5YOMZ5Fn17FH3Ol4knQhni7+YECOi0RzkFg1TlWrosqSfL3LeVxTH57L9X9tx63iRMhJQQRdAMiVCtkAlhv6g+IVnSt/tDKmuIkhOMYZ0reC+hgZXPiCxj1J5MJlJ00YmwjOynmDuWejUxfE0hrN0uOkIMQorIBQMVT+8Gk8If4rEkSvAeHwPtF3anI8bTtbDBQGWNsbQ38dq+FtCX8cvNPIZGA2pPs03VURBIxJyi2iJkLwu2QK7kgv9z+eYTXiq/hE7f+vWqc5sCJVG/52KU1NvgCq6ArRPGdyh6GedprQ+fhfK36hstfCsh5wDPcvaw8lOlnf5m+0STJdfIcnv4n7G3TrLT2AO4yTWMaxOOdve6rwjIfgSU565s5CG5I3dIierbEW8P8274yUdY/R+WJm/MT+gB8V/bQ9Vudtd8SFA/aTsMf74rNjsqwO/ZiD5kttpSsQn7t0zLIzdu/yCmdw5r9xSQK+rpF9BoI9JDl8KPHl/7Jq/Gz2fzrmu3bwvJ7QxiXiSuEnqfnfBpdq9MX6X85HDfzlx97bQXtEyATs5rPNGsvS6fG3FDLqTtEcCmweFEdQxGnkr2f1t0iSGnBKLR2xBwdX5DcIlhImfVKf/3oxTqre5cmP0wI4Sx2cpxgN07Nu9ikLLCGlbhC/92o4kkMIceUeafLcfAqKBWPlE4AwMCA0XIP0ocy5YRdeZyVx3D9oYQ8Mz2F3Y9NzTUT+ONakkV+Ctd2zhFDUVbzqTJZ4qsztZr9siea90EZhlBYw23Cmhkpdh7tQmRWpFXTD4fjDtwNDBbS/BkhTTy0lgKgq8s25A0l8hs9DxYqsGOIGa6PQvzlG/yQdQo2R0Wyr/IF+vyb/E4n6GzlsGlKFKh/kkLI5efBfji00EkfdCc/ckDgeSOQiG3ntKppztLX7wzaGLUiQfsB0XpFr8VYfqgJR0YX4YkxByyaeJad5k-----END RSA PRIVATE KEY-----"
        // var dec="YFpVDUb3nU4sFSy3+W2Ws+cBJnyv0sKpFJxN0JvXGQgzOwosjgJ9k3ayifV6zcr+WxlLDCI1JkYzbxWwB3BHc27cbl8fKWLUVAEZnDgfuctBZACJ5KDYidMpeJ174nCkVbn18Fb8avEPcQUjvhdX5n7mekT8Rc9QmhnCP8uQ458="
        // var decrypts = new JSEncrypt();
        // decrypts.setPrivateKey(key)
        // var uncrypteds = decrypts.decrypt(dec);//string 类型
        // console.log(JSON.parse(uncrypteds) );

      },

    },
    beforeDestroy() {
      

    }
  }
</script>

<style scoped>
 .animation{
  width: 200px;height: 200px;
 }
</style>
<style scoped>
 
</style>

获取公钥/私钥地址:http://tool.chacuo.net/cryptrsapubkey

前端(js)生成的公钥和私钥对,前端公钥和私钥都能使用,但是后端只能使用私钥
后端(c#)生成的公钥和私钥对,后端公钥和私钥都能使用,但是前端只能使用私钥

具体的用法是,前端生成公钥和私钥,然后前端拥有公钥,将加密数据上传给后端,后端拥有私钥解密

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值