html前端的几种加密/解密方式

news/2025/2/12 19:04:59/

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()函数。

  1. 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>

  2. 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>

        这些加密解密方式在前端通常用于保护敏感数据,如用户密码、用户身份验证等。需要注意的是,前端加密解密只能提供一定程度上的安全性,真正的安全仍然依赖于后端的处理和保护。


http://www.ppmy.cn/news/1375490.html

相关文章

Matlab偏微分方程拟合 | 完整源码 | 视频教程

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法&#xff0c;并提供所有案例完整源码&#xff1b;2.…

顺势交易中,用什么方法识别趋势的开始与结束?

在交易过程中&#xff0c;大家都知道顺势交易的重要性&#xff0c;但如何对趋势的开始和结束进行量化判断呢&#xff1f; 趋势交易需要一个正确的出发点和思想方向。也就是说&#xff0c;趋势交易需要关注什么呢&#xff1f;有哪些相关的技术手段可以利用呢&#xff1f; 首先&a…

python的JSON用法——dumps的各种参数用法(详细)

python的JSON用法——dumps的各种参数用法&#xff08;详细&#xff09;:https://blog.csdn.net/qq_46293423/article/details/105785007

Debezium发布历史173

原文地址&#xff1a; https://debezium.io/blog/2023/12/21/debezium-2-5-final-released/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. Debezium 2.5.0.Final Released December 21, 2023 by Fiore Mario V…

006-浏览器输入域名到返回

浏览器输入域名到返回 1、URL 输入2、DNS 域名解析3、建立 TCP 连接三次握手概念三次握手理解 4、发送 HTTP/HTTPS 请求5、服务器处理&#xff0c;并返回响应6、浏览器解析并渲染页面7、请求结束&#xff0c;端口 TCP 连接四次挥手概念四次挥手理解 1、URL 输入 2、DNS 域名解析…

重生奇迹mu战士大师技能加点怎么加

1、在重生奇迹MU中&#xff0c;战士大师的技能加点需要根据个人的游戏风格和需求来决定。一般来说&#xff0c;战士大师可以优先加点力量和体力&#xff0c;以增加攻击和生存能力。同时&#xff0c;可以适当加点敏捷来提高闪避和命中率。 2、在技能方面&#xff0c;可以根据个人…

将本地项目上传git仓库

将本地项目上传git仓库&#xff1a; 前提本地安装了git 1.在git上创建一个仓库名字和本地项目名字一样 2.在本地使用终端git命令 2.1初始git git init2.2添加到git git add .2.3 提交到git git commit -m "init"2.4 添加本地的远程库地址&#xff08;复制git上…

程序员有哪些常用的技术网站呢?

在当今信息化时代&#xff0c;程序员们能够通过互联网接触到许多优秀的技术网站&#xff0c;这些网站为他们提供了丰富的学习资源和交流平台。这些技术网站涵盖了各种软件开发、设计、数据分析和人工智能等领域&#xff0c;为程序员们提供了广阔的学习空间和交流机会。在这篇文…