Vue使用JSEncrypt實現rsa加密及掛載方法
阿新 • • 發佈:2020-02-10
掛載全域性方法
使用jsencrypt進行rsa加密
原文連結:Js引數RSA加密傳輸,jsencrypt.js的使用 *
https://www.jb51.net/article/179813.htm
(原文處有一個地方不對,不需要轉換+,rsa已經做過base64轉碼了)
1.安裝依賴 npm install jsencrypt 2.在main.js引入 import { JSEncrypt } from 'jsencrypt' 3.掛載全域性方法 //JSEncrypt加密方法 Vue.prototype.$encryptedData = function(publicKey,data) { //new一個物件 let encrypt = new JSEncrypt() //設定公鑰 encrypt.setPublicKey(publicKey) //password是要加密的資料,此處不用注意+號,因為rsa自己本身已經base64轉碼了,不存在+,全部是二進位制資料 let result = encrypt.encrypt(password) return result } //JSEncrypt解密方法 Vue.prototype.$decryptData = function(privateKey,data) { // 新建JSEncrypt物件 let decrypt = new JSEncrypt() // 設定私鑰 decrypt.setPrivateKey(privateKey) // 解密資料 let result = decrypt.decrypt(secretWord) return result }
全域性混合
使用yarn安裝至Vue專案
yarn add jsencrypt --dep
或者使用npm
npm install jsencrypt --dep
混入
import { JSEncrypt } from 'jsencrypt' export const RsaMixin = { methods: { // 加密 encryptedData(publicKey,data) { // 新建JSEncrypt物件 let encryptor = new JSEncrypt(); // 設定公鑰 encryptor.setPublicKey(publicKey); // 加密資料 return encryptor.encrypt(data); },// 解密 decryptData(privateKey,data){ // 新建JSEncrypt物件 let decrypt= new JSEncrypt(); // 設定私鑰 decrypt.setPrivateKey(privateKey); // 解密資料 decrypt.decrypt(secretWord); } } }
引入
<script> import InvoiceRecordModal from './modules/InvoiceRecordModal' import { RsaMixin } from '@/mixins/RsaMixin' export default { name: "InvoiceRecordList",//此時可以直接呼叫混入的方法 mixins:[RsaMixin],data(){},computed:{} } </script>
封裝為單VUE檔案中的方法
使用yarn安裝至Vue專案
yarn add jsencrypt --dep
或者使用npm
npm install jsencrypt --dep
引入jsencrypt
import { JSEncrypt } from 'jsencrypt'
方法
methods: { // 加密 encryptedData(publicKey,data) { // 新建JSEncrypt物件 let encryptor = new JSEncrypt(); // 設定公鑰 encryptor.setPublicKey(publicKey); // 加密資料 return encryptor.encrypt(data); },// 解密 decryptData(privateKey,data){ // 新建JSEncrypt物件 let decrypt= new JSEncrypt(); // 設定私鑰 decrypt.setPrivateKey(privateKey); // 解密資料 decrypt.decrypt(secretWord); } }
總結
以上所述是小編給大家介紹的Vue使用JSEncrypt實現rsa加密及掛載方法,希望對大家有所幫助!