Vue使用JSEncrypt實(shí)現(xiàn)rsa加密及掛載方法
掛載全局方法
使用jsencrypt進(jìn)行rsa加密
原文鏈接:Js參數(shù)RSA加密傳輸,jsencrypt.js的使用 *
http://www.dbjr.com.cn/article/179813.htm
(原文處有一個(gè)地方不對(duì),不需要轉(zhuǎn)換+,rsa已經(jīng)做過base64轉(zhuǎn)碼了)
1.安裝依賴 npm install jsencrypt
2.在main.js引入 import { JSEncrypt } from 'jsencrypt'
3.掛載全局方法
//JSEncrypt加密方法
Vue.prototype.$encryptedData = function(publicKey, data) {
//new一個(gè)對(duì)象
let encrypt = new JSEncrypt()
//設(shè)置公鑰
encrypt.setPublicKey(publicKey)
//password是要加密的數(shù)據(jù),此處不用注意+號(hào),因?yàn)閞sa自己本身已經(jīng)base64轉(zhuǎn)碼了,不存在+,全部是二進(jìn)制數(shù)據(jù)
let result = encrypt.encrypt(password)
return result
}
//JSEncrypt解密方法
Vue.prototype.$decryptData = function(privateKey, data) {
// 新建JSEncrypt對(duì)象
let decrypt = new JSEncrypt()
// 設(shè)置私鑰
decrypt.setPrivateKey(privateKey)
// 解密數(shù)據(jù)
let result = decrypt.decrypt(secretWord)
return result
}
全局混合
使用yarn安裝至Vue項(xiàng)目
yarn add jsencrypt --dep
或者使用npm
npm install jsencrypt --dep
混入
import { JSEncrypt } from 'jsencrypt'
export const RsaMixin = {
methods: {
// 加密
encryptedData(publicKey, data) {
// 新建JSEncrypt對(duì)象
let encryptor = new JSEncrypt();
// 設(shè)置公鑰
encryptor.setPublicKey(publicKey);
// 加密數(shù)據(jù)
return encryptor.encrypt(data);
},
// 解密
decryptData(privateKey,data){
// 新建JSEncrypt對(duì)象
let decrypt= new JSEncrypt();
// 設(shè)置私鑰
decrypt.setPrivateKey(privateKey);
// 解密數(shù)據(jù)
decrypt.decrypt(secretWord);
}
}
}
引入
<script>
import InvoiceRecordModal from './modules/InvoiceRecordModal'
import { RsaMixin } from '@/mixins/RsaMixin'
export default {
name: "InvoiceRecordList",
//此時(shí)可以直接調(diào)用混入的方法
mixins:[RsaMixin],
data(){},
computed:{}
}
</script>
封裝為單VUE文件中的方法
使用yarn安裝至Vue項(xiàng)目
yarn add jsencrypt --dep
或者使用npm
npm install jsencrypt --dep
引入jsencrypt
import { JSEncrypt } from 'jsencrypt'
方法
methods: {
// 加密
encryptedData(publicKey, data) {
// 新建JSEncrypt對(duì)象
let encryptor = new JSEncrypt();
// 設(shè)置公鑰
encryptor.setPublicKey(publicKey);
// 加密數(shù)據(jù)
return encryptor.encrypt(data);
},
// 解密
decryptData(privateKey,data){
// 新建JSEncrypt對(duì)象
let decrypt= new JSEncrypt();
// 設(shè)置私鑰
decrypt.setPrivateKey(privateKey);
// 解密數(shù)據(jù)
decrypt.decrypt(secretWord);
}
}
總結(jié)
以上所述是小編給大家介紹的Vue使用JSEncrypt實(shí)現(xiàn)rsa加密及掛載方法,希望對(duì)大家有所幫助!
相關(guān)文章
antd的select下拉框因?yàn)閿?shù)據(jù)量太大造成卡頓的解決方式
這篇文章主要介紹了antd的select下拉框因?yàn)閿?shù)據(jù)量太大造成卡頓的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10
vue項(xiàng)目發(fā)布有緩存正式環(huán)境不更新的解決方案
vue項(xiàng)目每次發(fā)布新版本后,測(cè)試人員都要強(qiáng)制刷新才能更新瀏覽器代碼來驗(yàn)證bug,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目發(fā)布有緩存正式環(huán)境不更新的解決方案,需要的朋友可以參考下2024-03-03
vue+webpack dev本地調(diào)試全局樣式引用失效的解決方案
今天小編就為大家分享一篇vue+webpack dev本地調(diào)試全局樣式引用失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Vue項(xiàng)目三級(jí)聯(lián)動(dòng)路由跳轉(zhuǎn)與傳參的思路詳解
這篇文章主要介紹了Vue項(xiàng)目三級(jí)聯(lián)動(dòng)的路由跳轉(zhuǎn)與傳參的思路詳解,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08
Vue利用AJAX請(qǐng)求獲取XML文件數(shù)據(jù)的操作方法
在現(xiàn)代Web開發(fā)中,從前端框架到后端API的交互是必不可少的一部分,Vue.js作為一個(gè)輕量級(jí)且功能強(qiáng)大的前端框架,支持多種方式與服務(wù)器通信,從而獲取或發(fā)送數(shù)據(jù),本文將詳細(xì)介紹如何在Vue.js項(xiàng)目中使用AJAX請(qǐng)求來獲取XML格式的數(shù)據(jù),需要的朋友可以參考下2024-09-09
使用vue實(shí)現(xiàn)點(diǎn)擊按鈕滑出面板的實(shí)現(xiàn)代碼
這篇文章主要介紹了使用vue實(shí)現(xiàn)點(diǎn)擊按鈕滑出面板的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-01-01
vue父元素點(diǎn)擊事件與子元素點(diǎn)擊事件沖突問題
這篇文章主要介紹了vue父元素點(diǎn)擊事件與子元素點(diǎn)擊事件沖突問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01

