Dado que JavaScript es un lenguaje de secuencias de comandos de tipo débil, surgen varios problemas cuando interactúa con un lenguaje de antecedentes de tipo fuerte, especialmente las operaciones de cifrado y descifrado. Debido a que encontré el problema de usar JS y Java para encriptar y descifrar entre sí durante mi trabajo, busqué mucha información y segmentos de código en línea, pero no pudieron resolverse. Después de resumir el contenido de múltiples documentos, finalmente encontré una solución. Lo grabaré de la siguiente manera:
Aquí hay dos métodos de cifrado JavaScript AES. Los detalles específicos son los siguientes:
El primer tipo: cuando la clave secreta (clave) y el desplazamiento de la clave secreta (iv) son necesarios durante el cifrado y el descifrado, la dirección de verificación en línea es: http://www.seacha.com/tools/aes.html
// Este método se puede encriptar y descifrarse mutuamente con java <! DocType html> <html lang = "en"> <fead> <meta charset = "utf-8"> <title> cifrado y descifrado de la clave secreta (clave) y la tecla secreta (iv) </title> </head> <body> <script. src = "aes_1.js"> </script> // El archivo js importado está en este enlace: https://github.com/hellobajie/aes-of-javaScript<Script>Var Key = cryptojs.enc.utf8.parse ("SIXTEEN-BIT Hexadecimal número como la clave secreta");;;;;;;;; var IV = cryptojs.enc.utf8.parse ('HEXT-BIT Número hexadecimal como desplazamiento clave'); function encrypt (word) {srcs = cryptojs.enc.utf8.parse (word); var encrypted = cryptojs.aes.encrypt (srcs, key, {iv: iv, mode: cryptojs.mode.cbc, remar: cryptojs.pad.pkcs7}); regreso cifrado.ciPhertext.ToString (). toUpperCase ();} function Decrypt (word) {var encryptedhexstr = cryptojs.enc.hex.parse (word); var srcs = cryptojs.enc.base64.stringify (encryptedhexstr); var decrypt = cryptojs.aes.Decypt (sringify, key, clave, clave, key, key, key, sharlett (sringspt (sringspt (sringspt (sringspt (sringspt (sringspt (sringspts, key, sharling (shintert (sringspt (sringspt (sringspts, KEYT (SryPypt (srings, key {iv: iv, modo: cryptojs.mode.cbc, padding: cryptojs.pad.pkcs7}); var descifrado str. return DecryptedStr.ToString ();} var mm = encrypt ('nihao') console.log (mm); var jm = decrypt (mm); console.log (jm) </script> </body> </html> // Si desea tener una comprensión profunda de la función de cada paso, puede referirse a: http://zhidao.baidu.com/question/647688575019014285.html?qbl=relate_Question_0&word=javascript%20aesEl segundo tipo: solo se requiere una clave secreta al cifrar y descifrar, y la dirección de verificación en línea es: http://encode.chahuo.com/
<! Doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title> Solo se requiere una clave secreta al encriptar y descifrar </title> </head> <body> <script src = "aes_2.js"> </script> // El archivo js importado está en este enlace: https://github.com/hellobajie/aes-of-javascript<Script type = "text/javascript"> var pwd = "key"; function encrypt (word) {return cryptojs.aes.ennpt (word, pwd) .toString ();} function descrypt (word) {return Cryptojs.aes.decrypt (word, pwd) .ToString (cryptojs.enc.utf8);} var mm = cifrypt ('nihao'); console.log (mm) var jm = Decrypt (mm); console.log (jm) </script> </body> </html>Los anteriores son los dos métodos de cifrado JavaScript AES (pueden encriptarse mutuamente y descifrarse con Java) presentados por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!