❤ 下载返回加密解密

❤功能集合

图片下载

方式一

window.open(URL, name, features, replace)
// 新窗口的 URL、窗口名称、窗口特性window.open(row.certificateImageUrl,"_blank", "width=500,height=400")
//打开一个新窗口并且指定长宽

参数说明:

URL:要在新窗口中加载的 URL 地址。可以是绝对 URL 或相对 URL。
name:新窗口的名称。可以是一个字符串,也可以是一个已经存在的窗口名称。如果名称已经存在,则新窗口会在该窗口中打开。如果名称为空或未指定,则会在新窗口中打开。

“_blank”:在新窗口或标签页中打开 URL。
“_self”:在当前窗口或标签页中打开 URL。
“_parent”:在父级窗口或标签页中打开 URL。
“_top”:在最顶层的窗口或标签页中打开 URL。

features:一个逗号分隔的字符串,用于指定新窗口的特性,如大小、位置、工具栏等。具体可用的特性取决于浏览器。
replace:一个布尔值,用于指定新窗口是否替换当前浏览器的历史记录。如果为 true,则在新窗口打开后,当前浏览器的历史记录将被替换为新窗口的历史记录。如果为 false 或未指定,则在新窗口打开后,当前浏览器的历史记录将保留。

function toHoutai() {window.open('http://trainingadmin.caderm.org', 'new_window');
}

方式二

// 下载图片01
const handleDownLoad = (url, name) => {const iframe = document.createElement("iframe");iframe.style.display = "none";iframe.src = url;document.body.appendChild(iframe);setTimeout(() => {document.body.removeChild(iframe);}, 200);// 下载图片downloadByBlob(url, name);
};// 下载图片03
const download = (href, name) => {let eleLink = document.createElement("a");eleLink.download = name;eleLink.href = href;eleLink.click();eleLink.remove();
};// 下载图片02
const downloadByBlob = (url, name) => {let image = new Image();image.setAttribute("crossOrigin", "anonymous");image.src = url;image.onload = () => {let canvas = document.createElement("canvas");canvas.width = image.width;canvas.height = image.height;let ctx = canvas.getContext("2d");ctx.drawImage(image, 0, 0, image.width, image.height);canvas.toBlob((blob) => {let url = URL.createObjectURL(blob);download(url, name);// 用完释放URL对象URL.revokeObjectURL(url);});};
};

网页返回

const toBack = (e) => {window.history.back(-1);
};

加密解密

① 插件加密

MD5加密(不可逆)
MD5加密是不可逆的,相当于是插件加密,当然你也可以把他的方法抄过来自己实现。

MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,前端用的比较多。

MD5加密的6种方法

1, hex_md5(value)
2, b64_md5(value)
3, any_md5(s, e)
4, hex_hmac_md5(key, data)
5, b64_hmac_md5(key, data)
6, any_hmac_md5(key, data, e)
————————————————

 var str64 = b64_md5(urlInput.value);outPut.value = str64;console.log('hex_md5加密', hex_md5(urlInput.value));console.log('b64_md5加密', b64_md5(urlInput.value));console.log('any_md5加密', any_md5('1', urlInput.value));console.log('hex_hmac_md5加密', hex_hmac_md5('1', urlInput.value));
————————————————

sha1加密(不可逆)

② JS API 加密

var btnEncrypt = document.getElementById('btnEncrypt');
var urlInput = document.getElementById('urlInput');
var outPut = document.getElementById('encryptContent');
var btnDecryption = document.getElementById('btnDecryption');
var decryptionContent = document.getElementById('decryptionContent');// base 64 加密
btnEncrypt.addEventListener('click', function() {var str64 = window.btoa(urlInput.value);outPut.value = str64;
})
btnDecryption.addEventListener('click', function() {var str = window.atob(outPut.value);decryptionContent.value = str;
})
前端控制台出现hex_md5 is not defined的错误

报错信息提示:

md5.js这一个文件没有问题
[Vue warn]: Error in v-on handler: “ReferenceError: hex_md5 is not defined”
found in    —> at src/views/admin/user.vue        at src/views/admin.vue        at src/app.vuewarn @ webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:620

解决方法

检查index.html,是否有引入md5.js,写法是否正确
写法错误

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/184865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构 | 二叉树的概念及前中后序遍历

数据结构 | 二叉树的概念及前中后序遍历 文章目录 数据结构 | 二叉树的概念及前中后序遍历一、树概念及结构1.1 树的相关概念 二、树的表示2.2 树在实际中的运用(表示文件系统的目录树结构) 三、二叉树概念及结构3.1 二叉树的基本概念3.2 二叉树的结构&a…

文档理解的新时代:LayOutLM模型的全方位解读

一、引言 在现代文档处理和信息提取领域,机器学习模型的作用日益凸显。特别是在自然语言处理(NLP)技术快速发展的背景下,如何让机器更加精准地理解和处理复杂文档成为了一个挑战。文档不仅包含文本信息,还包括布局、图…

js查询详情接口控制执行时间的命令

在JavaScript中,可以使用console.time()和console.timeEnd()来控制执行时间的命令。 console.time()用于开始计时,可以指定一个标识符作为参数,用于标识计时器。 console.time(query); // 执行查询操作 console.timeEnd(query); 执行上述代…

熟练运用这些黑盒测试知识点,月薪翻倍不是难题

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

NX二次开发UF_MTX2_copy 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX2_copy Defined in: uf_mtx.h void UF_MTX2_copy(const double mtx_src [ 4 ] , double mtx_dst [ 4 ] ) overview 概述 Copies the 2x2 matrix elements from the source m…

快速排序算法的代码及算法思想

快速排序(Quick Sort)是一种常用的排序算法,他的时间复杂度为O(nlogn) 算法思想: 通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据小,然后再对这两部分数据分别进行快速排…

js修改浏览器地址栏里url的方法

1、更新url某一参数的值 function updateQueryStringParameter(uri, key, value) {if (!value) { return uri }var re new RegExp("([?&])" key ".*?(&|$)", "i");var separator uri.indexOf(?) ! -1 ? "&" : &q…

模糊C均值聚类(Fuzzy C-means clustering,FCM)的基本概念,详细流程以及广泛应用!

文章目录 1.基本概念2. FCM的详细流程3.FCM的应用 1.基本概念 模糊C均值聚类(Fuzzy C-means clustering,FCM)是一种软聚类方法,它允许数据点属于多个聚类中心,每个聚类中心都有一个权重。与传统的硬聚类方法&#xff…

Visual Studio 2022分析C#程序内存泄漏

背景 最近我们的项目出现了内存激增的情况,初次探讨,我们发现和机器人发生通信之后,内存会缓慢上升,直到系统崩溃。 例子 由于只是介绍一个简单的方案,所以就写一个比较简单的例子来演示了,代码如下&…

Python实现对Windows注册表的增删改查

首先我们需要安装winreg库 pip install winreg注册表常量 ”winreg“总有很多有用的方法,基本上就是操作注册表中的键值,我们挑几个重要的来说说。首先我们来了解下”winreg“中的各个常量: 1.HKEY_ 常量 winreg.HKEY_CLASSES_ROOT #存…

五要素超声波气象站-气象站小百科

随着科技的发展,人们对气象监测的需求也越来越高。为了满足这一需求,一款全新的五要素超声波气象站应运而生。这款气象站不仅具有高精度的测量能力,而且能够实时监测天气变化,为人们提供准确的气象数据。 一、实时监测&#xff0…

34、故事大全API接口,免费好用

1、前言 故事大全查询API接口,这个是RollToolsApi通用系列接口的其中一个,内部包含了3个小接口,可获取睡前故事,儿童故事,格林童话,安徒生童话,民间故事,益智故事,历史故…

python循环语句和函数

1.使用for循环打印9*9乘法表 for i in range(1, 10):for j in range(1, i1):print(i, "*", j, "", i*j, end"\t")print()结果&#xff1a; 2.使用while循环打印9*9乘法表 i 1 while i < 10:j 1while j < i1:print(i, "*", j…

SSD-Single Shot Detector

文章目录 SSD模型主要改进点模型说明训练Choosing scales and aspect ratios for default boxesMatching strategyTraining objectiveHard negative miningData augmentation实验结果基本网络参数PASCAL VOC2007模型消融实验PASCAL VOC2012COCO推理速度比较前面提到了两种经典的…

moment.js的使用

更多可参见官方文档&#xff1a;Moment.js 中文网 | 开发文档

Java常见的面试题(很基础那种)

这里介绍一下,一些比较基础的Java面试题,比较适合应届生、实习生这些朋友。因为对于刚出来工作的Java工程师,很多企业都偏向招一些基础比较好的苗子回来培养。所以啊,在校的朋友们,一定要在读书期间,多做项目,如果没有实际的项目,可以在github找一些案例来做参考,先模…

koa2项目中封装log4js日志输出

1.日志输出到控制台 npm i log4js -D 封装log4js文件&#xff1a; const log4js require("log4js"); const logger log4js.getLogger();const levels {trace: log4js.levels.TRACE,debug: log4js.levels.DEBUG,info: log4js.levels.INFO,warn: log4js.levels.WAR…

分享83个简历竞聘PPT,总有一款适合您

分享83个简历竞聘PPT&#xff0c;总有一款适合您 83个简历竞聘PPT下载链接&#xff1a;https://pan.baidu.com/s/1iybRAisgWgXhelE1tGpzBw?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整…

awk笔记231129

awk的脚本套路是: awk的脚步部分最好用一对单引号将 ‘BEGIN{} /pattern1/{}…/patternN/{} END{}’ 套起来, 因为常用到$号, $号在单引号中不会被转义, 在双引号中有取值的含义 awk -F 自定义分隔符 BEGIN{开始块} /pattern1/{操作pattern1过滤的行的块} /pattern2/{操作patt…

国标GB28181协议/RTSP视频监控汇聚平台EasyCVR(V.3.4)页面UI大更新

为提高用户体验&#xff0c;增强平台功能&#xff0c;旭帆科技的Easy系列平台也在不断优化更新中。在最新的EasyCVR&#xff08;V.3.4&#xff09;中&#xff0c;其最显著的区别即为首页UI的调整。 其亮点是在【配置中心】-【基础配置】-【展示信息】中&#xff0c;首页UI可分…