Narration:
Il existe deux schémas de cryptage sur le front-end, l’un est un algorithme de cryptage réversible et l’autre est un algorithme de cryptage irréversible.
DES
et AES
est réversible, le cryptage et le déchiffrement peuvent donc être effectués par la clé,
MD5
C'est irréversible et on ne peut déterminer si le texte en clair est le même qu'en le chiffrant à nouveau.
1. Cryptage frontal MD5 (irréversible)
npm install -- save js- md5
Introduit main.js
et monté Vue的prototype
sur
import md5 from 'js-md5' ;
Vue . prototype. $md5 = md5;
Chiffrer lors de l'envoi de la demande
this . login ( {
username : that. formLogin. username,
password : that. $md5 ( that. formLogin. password) ,
captcha : that. formLogin. captcha,
captchaKey : that. captchaKey
} )
2. Cryptage et décryptage AES/DES
Installer les packages de dépendances
npm install crypto- js
Encapsuler les méthodes publiques de chiffrement et de déchiffrement
import CryptoJS from 'crypto-js' ;
export const generatekey = ( num ) => {
let library = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" ;
let key = "" ;
for ( var i = 0 ; i < num; i++ ) {
let randomPoz = Math. floor ( Math. random ( ) * library. length) ;
key += library. substring ( randomPoz, randomPoz + 1 ) ;
}
return key;
}
export const encrypt = ( word, keyStr ) => {
keyStr = keyStr ? keyStr : 'XXXXXXXXXXXXX' ;
var key = CryptoJS. enc. Utf8. parse ( keyStr) ;
var srcs = CryptoJS. enc. Utf8. parse ( word) ;
var encrypted = CryptoJS. AES . encrypt ( srcs, key, {
mode : CryptoJS. mode. ECB , padding : CryptoJS. pad. Pkcs7 } ) ;
return encrypted. toString ( ) ;
}
export const listdecrypt = ( word, keyStr ) => {
keyStr = keyStr ? keyStr : 'XXXXXXXXXXXXX' ;
var key = CryptoJS. enc. Utf8. parse ( keyStr) ;
var decrypt = CryptoJS. AES . decrypt ( word, key, {
mode : CryptoJS. mode. ECB , padding : CryptoJS. pad. Pkcs7 } ) ;
return CryptoJS. enc. Utf8. stringify ( decrypt) . toString ( ) ;
}
Utilisé dans les fichiers Vue
addAES ( ) {
const aseKey = "12345678" ;
const message = "[email protected] " ;
this . password = encrypt ( message, aseKey) ;
console. log ( this . password) ;
} ,
addAESJIEmi ( ) {
const aseKey = "12345678" ;
const data = listdecrypt ( this . password, aseKey) ;
console. log ( data) ;
} ,