首頁/ 汽車/ 正文

前端加密後端解密

一、下載前端加密的js連結

https://cdnjs。cloudflare。com/ajax/libs/crypto-js/4。1。1/crypto-js。min。js

某應用系統進行一個前後端的分離開發,前端可以使用html或者vue,後端採用java進行一個開發。其中前端某一部分導航功能需要跳轉至後端(簡單的說就是前端現在要把後端中的所有功能包含進來),這裡就涉及到前端登入後的許可權要同步到後端,實現單點登入,針對外部使用者就採用了AES加密的方式驗證。 實現思路: 在登入前端的情況下,外部使用者點選跳轉至後端的時候免登入,同步許可權。這裡是在跳轉時,前後端協商採用AES的加解密對該使用者進行校驗。後端java使用Crypto++庫,前端使用crypto-js。min。js進行AES的對應操作。經過測試,本例中的前後端程式碼的加密解密計算結果是一致的。

二、加密方法

前端為html的引入

此處需要注意的是key的長度必須為16位

// 加密方法function encrypt(word,key) { var keyHex = CryptoJS。enc。Utf8。parse(key); let encrypted = CryptoJS。AES。encrypt(word, keyHex, { mode: CryptoJS。mode。ECB, padding: CryptoJS。pad。Pkcs7 }); return encrypted。toString();}

前端加密後端解密

前端為vue的引入

npm install crypto-js

cnpm install crypto-js

import CryptoJS from ‘crypto-js’export default { data() { },/*** @description: 加密* @param {*} word* @param {*} key*/ methods: { encrypt(word,key) { var keyHex = CryptoJS。enc。Utf8。parse(key); let encrypted = CryptoJS。AES。encrypt(word, keyHex, { mode: CryptoJS。mode。ECB, padding: CryptoJS。pad。Pkcs7 }); return encrypted。toString(); } }}

前端加密後端解密

三、後臺的解密方法

import sun。misc。BASE64Decoder;import java。util。Base64;import javax。crypto。Cipher;import javax。crypto。KeyGenerator;import javax。crypto。spec。SecretKeySpec;public class DESUtil { //16位的key private static final String key==“xxxxxxxxxxxxxxxx”; public static String decrypt(String hexStr){ try{ BASE64Decoder decoder = new BASE64Decoder(); byte[] contentNew = decoder。decodeBuffer(hexStr); SecretKeySpec skeySpec = new SecretKeySpec(key。getBytes(“UTF-8”), “AES”); Cipher cipher = Cipher。getInstance(“AES/ECB/PKCS5Padding”); cipher。init(Cipher。DECRYPT_MODE, skeySpec); return new String(cipher。doFinal(contentNew)); }catch (Exception e){ e。printStackTrace(); } }}

前端加密後端解密

相關文章

頂部