参考地址: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#)生成的公钥和私钥对,后端公钥和私钥都能使用,但是前端只能使用私钥
具体的用法是,前端生成公钥和私钥,然后前端拥有公钥,将加密数据上传给后端,后端拥有私钥解密