这里用最传统的方式进行AES加密。

提供两种方式:

            console.log("方式一");var userName = document.getElementById("userName").value;var password = document.getElementById("password").value;var offset = document.getElementById("offset").value;var salt = document.getElementById("salt").value;var encrypted = CryptoJS.AES.encrypt(password, salt, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});console.log("原始数据 : ", password);console.log("vi : ", offset);console.log("salt : ", salt);document.getElementById("password").value = encrypted;console.log("ase加密 : ", encrypted);console.log("解密");let decrypted = CryptoJS.AES.decrypt(encrypted, salt, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});console.log("ase 解码 : " , decrypted.toString(CryptoJS.enc.Utf8));console.log("方式二");salt = CryptoJS.enc.Utf8.parse(salt);password = CryptoJS.enc.Utf8.parse(password);encrypted = CryptoJS.AES.encrypt(password, salt, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});console.log("密文 : ", encrypted.toString());console.log("解密");decrypted = CryptoJS.AES.decrypt(encrypted.toString(), salt, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});console.log("明文 : ", CryptoJS.enc.Utf8.stringify(decrypted).toString());

运行截图如下:

完整代码如下:

<!DOCTYPE html>
<html  xmlns="http://www.w3.org/1999/xhtml"xmlns:th="https://www.thymeleaf.org"xmlns:sec="https://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head><!-- Standard Meta --><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"><!-- Site Properties --><title>Login Example - Semantic</title><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/reset.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/site.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/container.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/grid.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/header.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/image.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/menu.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/divider.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/segment.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/form.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/input.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/button.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/list.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/message.css"><link rel="stylesheet" type="text/css" href="https://semantic-ui.com/dist/components/icon.css"><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><!-- 引入 CDN Crypto.js 开始 AES加密 注意引入顺序 --><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/core.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/enc-base64.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/md5.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/evpkdf.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/cipher-core.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/aes.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/pad-pkcs7.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/mode-ecb.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/enc-utf8.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/enc-hex.min.js"></script><!-- 引入 CDN Crypto.js 结束 --><style type="text/css">body {background-color: #DADADA;}body > .grid {height: 100%;}.image {margin-top: -100px;}.column {max-width: 450px;}</style><script language="JavaScript">function login(){console.log("方式一");var userName = document.getElementById("userName").value;var password = document.getElementById("password").value;var offset = document.getElementById("offset").value;var salt = document.getElementById("salt").value;var encrypted = CryptoJS.AES.encrypt(password, salt, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});console.log("原始数据 : ", password);console.log("vi : ", offset);console.log("salt : ", salt);document.getElementById("password").value = encrypted;console.log("ase加密 : ", encrypted);console.log("解密");let decrypted = CryptoJS.AES.decrypt(encrypted, salt, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});console.log("ase 解码 : " , decrypted.toString(CryptoJS.enc.Utf8));console.log("方式二");salt = CryptoJS.enc.Utf8.parse(salt);password = CryptoJS.enc.Utf8.parse(password);encrypted = CryptoJS.AES.encrypt(password, salt, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});console.log("密文 : ", encrypted.toString());console.log("解密");decrypted = CryptoJS.AES.decrypt(encrypted.toString(), salt, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});console.log("明文 : ", CryptoJS.enc.Utf8.stringify(decrypted).toString());}</script>
</head>
<body><div class="ui middle aligned center aligned grid"><div class="column"><h2 class="ui teal image header"><div class="content">Log-in to your account</div></h2><form action="" method="post" class="ui large form" onsubmit="login()"><div class="ui stacked segment"><div class="field"><div class="ui left icon input"><i class="user icon"></i><input type="text" id="userName" name="userName" placeholder="userName"></div></div><div class="field"><div class="ui left icon input"><i class="lock icon"></i><input type="password" id="password" name="password" placeholder="password"></div></div><button class="ui fluid large teal button submit">Login</button></div><input name="salt" id="salt" type="hidden" value="abc123abc123abc1"><input name="offset" id="offset" type="hidden" value="abcabcabcabcabca"><div class="ui error message"></div></form></div>
</div></body></html>

JavaScript笔记-前端AES加密相关推荐

  1. Javascript中的AES加密和Java中的解密

    AES代表高级加密系统,它是一种对称加密算法,很多时候我们需要在客户端加密一些纯文本(例如密码)并将其发送到服务器,然后由服务器解密以进行进一步处理.AES加密和解密更加容易在相同的平台(例如Andr ...

  2. 前端aes加密_前端安全攻防解析

    知识点列表: CSRF 攻击 XSS攻击 HTTPS 程序员必须要了解的web安全 - 掘金 若愚:「每日一题」CSRF 是什么? [基本功] 前端安全系列之一:如何防止XSS攻击? [基本功] 前端 ...

  3. nodejs与javascript中的aes加密

    简介 1.aes加密简单来说,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用.高级加密标准已然成为对称密钥加 ...

  4. BASE64加密解密---前端 AES 加密解密

    在做项目的时候,要求base64加密传输,和java后端试了很多,就这个比较合适 首先先下包 npm i crypto-js --save 封装 import CryptoJS from " ...

  5. Python实现前端AES加密方式分析,***密码学必备!

    在前端常见的加密方式中AES很少使用,因为相对于非对称的RSA安全性很低,AES是典型的对称加密,密钥就在前端源码里. 案列网站是ewt360.com,一个并不复杂的网站,首先抓个包看看: 加密字段只 ...

  6. 0宽字符加密_前端AES加密方式分析,及其python实现

    在前端常见的加密方式中AES很少使用,因为相对于非对称的RSA安全性很低,AES是典型的对称加密,密钥就在前端源码里. 案列网站是http://ewt360.com,一个并不复杂的网站,首先抓个包看看 ...

  7. php aescbc偏移量不对称,关于前端AES加密与后台不同的问题。

    后台为php,使用 openssl 用 aes 进行加密,加密结果与 http://tool.chacuo.net/cryptaes 结果是一致的. 现在的问题是前端使用 CryptoJS 怎么弄都不 ...

  8. JavaScript笔记-前端原生态WebSocket的使用

    运行截图如下: 输入数据点击发送: 源码如下: <!DOCTYPE html> <html lang="en"> <head><meta ...

  9. javascript 解密_Javascript中的AES加密和Java中的解密

    javascript 解密 AES代表高级加密系统,它是一种对称加密算法,很多时候我们需要在客户端加密一些纯文本,例如密码,然后将其发送到服务器,然后由服务器解密以进行进一步处理.AES加密和解密更加 ...

  10. 前端JavaScript AES解密 AES加密 ECB模式

    项目里使用过md5.base64,使用AES的安全系数会高一些. 高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法,微信小程序加密传输就是用这个加 ...

最新文章

  1. 冇内容管理系统分析-[JS]详尽解析window.event对象
  2. 网页图表Highcharts实践教程之认识Highcharts
  3. 【实施工程师】Linux怎么查看当前进程
  4. MySQL服务端的登录和退出
  5. 并发编程(原子性、可见性、一致性)
  6. Java 序列化总结.md
  7. IPV6 IPV4双栈互通与静态路由
  8. JavaScript鼠标经过图片加亮显示
  9. Error:Protocol family unavailable
  10. VC++6.0快捷键
  11. 仿射解密c语言程序实验报告,仿射加密解密 - 依姆哣特的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. Hibernate配置JNDI数据源
  13. 如何让webpack打包的速度提升50%?
  14. pdf文件如何生成目录 wps_wps怎么制作pdf文档 wps快速制作pdf文档方法教程
  15. 纯javascript实现 “扫一扫“ 功能,不依赖任何硬件支持,普通浏览器,webview内嵌网页皆可用,如果不能用我吃翔
  16. 主成分分析碎石图_主成分分析大全
  17. 15.6. footnote 脚注
  18. 中国石油大学天梯赛真题模拟第三场
  19. 支付10秒倒计时链接页面跳转
  20. 金融业大数据风控方式

热门文章

  1. 手撕包菜BT搜索引擎带爬虫自动抓取安装
  2. 融云 SDK 5.0.0 功能迭代
  3. 【剑指Offer学习】【所有面试题汇总】
  4. Renesas:RH850的FCL库移植与使用
  5. oracle建表语句6,Oracle建表语句
  6. ERP之什么是物料编码?
  7. 计算机基础知识教程函数,EXCEL函数教程_电脑基础知识_IT计算机_专业资料.ppt
  8. winform5、高清屏下字体模糊的解决方法
  9. mysql手册06_触发器
  10. 智能制造数字化车间的实施策略(上)