html前端的几种加密/解密方式
HTML前端的加密解密方式有以下几种:
一、base64加密
-
Base64编码:Base64是一种将二进制数据转换为可打印字符的编码方式。在前端,可以使用JavaScript的btoa()函数进行Base64编码,使用atob()函数进行解码。
var str = "hello";
var str64 = window.btoa("hello");
console.log("定义的字符串为:"+str);
console.log("通过base64编码后为:"+str64);
console.log("由base64解码后为:"+window.atob(str64));
二、MD5加密(不可逆)
-
MD5散列:MD5是一种广泛使用的散列算法,可以将输入转换为固定长度的散列值。在前端,可以使用JavaScript的CryptoJS库来进行MD5散列,例如使用md5()函数。
-
html使用md5加密
// 引入md5和jquery <script src="https://cdn.bootcdn.net/ajax/libs/blueimp-md5/2.18.0/js/md5.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>// 函数加密 <script>let mq = '741130687291314520'let pwd = md5(mq);console.log('加密前的字符串', mq) // 加密前的字符串 741130687291314520console.log('加密后的字符串', pwd) // 加密后的字符串 8a39c2287dc743a44b2483d504acb0c3 </script>
-
MD5作为插件
MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件。MD5共有6种加密方法:
- hex_md5(value)
- b64_md5(value)
- str_md5(value)
- hex_hmac_md5(key, data)
- b64_hmac_md5(key, data)
- str_hmac_md5(key, data)
下载好了用script 标签引入使用
var code = "123456";
var username = "123456";
var message = "123456";
var str1 = hex_md5("123456");
var str2 = b64_md5("123456");
var str3 = str_md5("123456");
var str4 = hex_hmac_md5(code,code);
var str5 = b64_hmac_md5(username,username);
var str6 = str_hmac_md5(message ,message );
console.log(str1); // e10adc3949ba59abbe56e057f20f883e
console.log(str2); // 4QrcOUm6Wau+VuBX8g+IPg
console.log(str3); // áÜ9IºY«¾VàWò��>
console.log(str4); // 30ce71a73bdd908c3955a90e8f7429ef
console.log(str5); // MM5xpzvdkIw5VakOj3Qp7w
console.log(str6); // 0Îq§;Ý��9U©��t)ï
三、编码和解码字符串
使用JS函数的escape()和unescape(),分别是编码和解码字符串
var escape1 =escape("我的名字是:mosquito~");//编码
console.log(escape1);
var unescape1 = unescape(escape1); //解码
console.log(unescape1);
四、AES/DES加密解密
1. AES加密:
AES(Advanced Encryption Standard)是一种对称加密算法,可以将数据进行加密,并使用相同的密钥进行解密。在前端,可以使用JavaScript的CryptoJS库来进行AES加密解密,例如使用AES.encrypt()和AES.decrypt()函数。
2. RSA加密:
RSA是一种非对称加密算法,可以使用公钥对数据进行加密,然后使用私钥进行解密。在前端,可以使用JavaScript的CryptoJS库结合其他库(如RSAKey)来进行RSA加密解密。
下载crypto-js.js 引入使用
// 引入库
<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script>// 使用
<script>var aseKey = "12345678" //秘钥必须为:8/16/32位var message = "741130687291314520";//加密var encrypt = CryptoJS.AES.encrypt(message, CryptoJS.enc.Utf8.parse(aseKey), {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}).toString();console.log('加密',encrypt); //VKrZlqykem73x8/T2oCfCQ==//解密var decrypt = CryptoJS.AES.decrypt(encrypt, CryptoJS.enc.Utf8.parse(aseKey), {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);console.log('解密',decrypt); //80018000142//【注】:加密的时候必须转成字符串 使用toString。 解密的时候 必须使用utf8的格式</script>
这些加密解密方式在前端通常用于保护敏感数据,如用户密码、用户身份验证等。需要注意的是,前端加密解密只能提供一定程度上的安全性,真正的安全仍然依赖于后端的处理和保护。
相关文章:
html前端的几种加密/解密方式
HTML前端的加密解密方式有以下几种: 一、base64加密 Base64编码:Base64是一种将二进制数据转换为可打印字符的编码方式。在前端,可以使用JavaScript的btoa()函数进行Base64编码,使用atob()函数进行解码。 var str "hello…...
算法学习01:排序二分
算法学习01:排序&&二分 文章目录 算法学习01:排序&&二分前言需要记忆的模版:快速排序归并排序:整数二分:浮点数二分 一、排序1.快速排序2.归并排序: 二、二分1.整数2.浮点数 总结 前言 需要…...
OpenAI (ChatGPT)中国免费试用地址
GitHub - click33/chatgpt---mirror-station-summary: 汇总所有 chatgpt 镜像站,免费、付费、多模态、国内外大模型汇总等等 持续更新中…… 个人能力有限,搜集到的不多,求大家多多贡献啊!众人拾柴火焰高!汇总所有 cha…...
IOS面试题object-c 11-20
11、解释self [super init]方法? 容错处理, 当父类初始化失败,会返回一个nil, 表示初始化失败。 由于继承的关系, 子类是需要拥有父类的实例和行为, 因此, 我们必须先初始化父类,然后再初始化子类 12、简述使用block有什么优点?代码紧凑,传值…...
北斗导航 | 十四种抗差稳健估计(抗差M估计)方法(算法公式)
===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 稳健估计(M估计) 1、Huber法2、残差绝对和最小法3、L1-L2法...
【JavaEE】_Spring MVC项目使用数组与集合传参
目录 1. 使用数组传参 1.2 传递单个参数 1.3 传递多个名称相同的参数 1.3.1 关于urlencode 2. 使用集合传参 1. 使用数组传参 创建一个Spring MVC项目,其中 .java文件内容如下: package com.example.demo.controller;import com.example.demo.Per…...
Centos 9 安装 k8s
为了尽可能契合生产环境的部署情况,这里用kubeadm安装集群,同时方便跟随笔记一步步实践的过程,也更加了解k8s的一些特性和基础知识。 先决条件 这里将通过虚拟机安装3台centos stream 9服务器,并组成kubeneters集群(…...
WiFi模块助力少儿编程:创新学习与实践体验
随着科技的飞速发展,少儿编程已经成为培养孩子们创造力和问题解决能力的重要途径之一。在这个过程中,WiFi模块的应用为少儿编程领域注入了新的活力,使得学习编程不再是单一的代码教学,而是一个充满创新与实践的综合性体验。 物联网…...
最新:Selenium操作已经打开的Chrome(免登录)
最近重新尝试了一下,之前写的博客内容。重新捋了一下思路。 目的就是,selenium在需要登录的网站面前,可能就显得有些乏力,因此是不是有一种东西,可以操作它打开我们之前打开过的网站,这样就不用登录了。 …...
三色标记过程
可达性分析 GC过程中需要对对象图遍历做可达性分析。使用了三色标记法进行分析。 什么三色? 白色:尚未访问过。 黑色:本对象已访问过,而且本对象 引用到 的其他对象 也全部访问过了。 灰色:本对象已访问过࿰…...
记录汇川:IO隔离编程
IO隔离:方便程序修改 无论是输入点坏了还是输出点坏了,或者人为接错线,或者对调点,我们只需要更改IO隔离得输入输出就可以了。方便。 停止按钮外接常闭,里面也使用常闭,为了断线检测功能(安全)ÿ…...
【Docker】容器的生态系统
Docker提供了一整套技术支持,包括核心技术、平台技术、支持技术。 核心技术 容器核心技术是指能让Container(容器)在host(集群、主机)上运行起来的那些技术。 1)容器规范:OCI(runt…...
AVL树讲解
AVL树 1. 概念2. AVL节点的定义3. AVL树插入3.1 旋转 4.AVL树的验证 1. 概念 AVL树是一种自平衡二叉搜索树。它的每个节点的左子树和右子树的高度差(平衡因子,我们这里按右子树高度减左子树高度)的绝对值不超过1。AVL的左子树和右子树都是AV…...
20240308-1-校招前端面试常见问题CSS
校招前端面试常见问题【3】——CSS 1、盒模型 Q:请简述一下 CSS 盒模型? W3C 模式:盒子宽widthpaddingbordermargin 怪异模式:盒子宽widthmargin Q:inline、block、inline-block 元素的区别? inline&am…...
linux系统简述docker
简述docker docker理念docker三要素docker平台架构docker运行的基本流程 docker理念 一次镜像,处处运行 基于go语言实现的项目 解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术 能够使硬件、操作系统和应用程序三者…...
【论文阅读】Mamba:选择状态空间模型的线性时间序列建模(一)
文章目录 Mamba:选择状态空间模型的线性时间序列建模介绍状态序列模型选择性状态空间模型动机:选择作为一种压缩手段用选择性提升SSM 选择性SSM的高效实现先前模型的动机选择扫描总览:硬件感知状态扩展 Mamba论文 Mamba:选择状态空间模型的线性时间序列建…...
漏洞复现-蓝凌LandrayOA系列
蓝凌OA系列 🔪 是否利用过 优先级从高到低 发现日期从近到远 公司团队名_产品名_大版本号_特定小版本号_接口文件名_漏洞类型发现日期.载荷格式LandrayOA_Custom_SSRF_JNDI漏洞 LandrayOA_sysSearchMain_Rce漏洞 LandrayOA_Custom_FileRead漏洞...
计算机网络 路由算法
路由选择协议的核心是路由算法,即需要何种算法来获得路由表中的各个项目。 路由算法的目的很明显,给定一组路由器以及连接路由器的链路,路由算法需要找到一条从源路由器到目的路由器的最佳路径,通常,最佳路径是由最低…...
【C++ 学习】构造函数详解!!!
1. 类的6个默认成员函数的引入 ① 如果一个类中什么成员都没有,简称为空类。 ② 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 ③ 默认成员函数:用户没有显式实现&…...
【LeetCode】72. 编辑距离(中等)——代码随想录算法训练营Day55
题目链接:72. 编辑距离 题目描述 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符删除一个字符替换一个字符 示例 1: 输入:w…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
