这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

当今Web开发中,数据安全是一个至关重要的问题,为了确保数据的安全性,我们需要使用加密技术。JavaScript作为一种客户端编程语言,可以很好地为数据进行加密。在本篇文章中,我们将为你提供一个常规JavaScript加密大全,以及案例代码来演示如何使用它们。

Base64加密

Base64是一种将二进制数据编码为ASCII字符的编码方式。这种编码方式广泛应用于将二进制数据转换为文本数据的场合,例如在电子邮件中传输二进制数据。以下是JavaScript实现Base64加密的代码:

function base64Encode(str) {
 return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode('0x' + p1)));
}

这里我们使用了JavaScript内置的btoa()函数和encodeURIComponent()函数。其中,btoa()函数可以将字符串编码为Base64格式,而encodeURIComponent()函数则可以将字符串转换为可传输的URI格式。我们还使用了一个正则表达式来将URI格式中的特殊字符进行替换。最后,我们将处理后的字符串返回作为结果。

以下是一个使用Base64加密的例子:

const originalString = "Hello, world!";
const encodedString = base64Encode(originalString);

console.log("Original string:", originalString);
console.log("Encoded string:", encodedString);

运行上述代码,输出将会是:

Original string: Hello, world!
Encoded string: SGVsbG8sIHdvcmxkIQ==

MD5加密

MD5是一种广泛使用的消息摘要算法,用于验证数据完整性和防止数据被篡改。MD5生成的摘要信息是一个128位的二进制数据,通常表示为32个十六进制数字。以下是JavaScript实现MD5加密的代码:

function md5(str) {
 let md5Hash = CryptoJS.MD5(str);
 return md5Hash.toString(CryptoJS.enc.Hex);
}

在这里,我们使用了一个JavaScript库CryptoJS来实现MD5加密。我们首先将输入的字符串传递给CryptoJS.MD5()函数进行摘要计算,然后将结果转换为十六进制格式的字符串返回。

以下是一个使用MD5加密的例子:

const originalString = "Hello, world!";
const hashedString = md5(originalString);

console.log("Original string:", originalString);
console.log("Hashed string:", hashedString);

运行上述代码,输出将会是:

Original string: Hello, world!
Hashed string: ed076287532e86365e841e92bfc50d8c

AES加密

AES是一种对称密钥加密算法,广泛应用于数据加密和保护。以下是JavaScript实现AES加密的代码:

function aesEncrypt(str, key) {
 let encrypted = CryptoJS.AES.encrypt(str, key);
 return encrypted.toString();
}

function aesDecrypt(str, key) {
 let decrypted = CryptoJS.AES.decrypt(str, key);
 return decrypted.toString(CryptoJS.enc.Utf8);
}

这里我们同样使用了CryptoJS库来实现AES加密。我们首先调用CryptoJS.AES.encrypt()函数来加密输入字符串,然后将结果转换为字符串并返回。解密过程也很类似,我们调用CryptoJS.AES.decrypt()函数来解密字符串,然后将结果转换为UTF-8格式的字符串并返回。

以下是一个使用AES加密的例子:

const originalString = "Hello, world!";
const key = "my-secret-key";

const encryptedString = aesEncrypt(originalString, key);
const decryptedString = aesDecrypt(encryptedString, key);

console.log("Original string:", originalString);
console.log("Encrypted string:", encryptedString);
console.log("Decrypted string:", decryptedString);

运行上述代码,输出将会是:

Original string: Hello, world!
Encrypted string: U2FsdGVkX19Jj+YoIjqJZvT8WxtsA9X+wLjKzFMGk8M=
Decrypted string: Hello, world!

以上是一个常规JavaScript加密大全及案例代码,希望可以对你有所帮助!

jsjiami.com

如果您对文章内容有不同看法,或者疑问,欢迎到评论区留言,或者私信我都可以。

也可以到上方网站,底部有我联系方式详谈

如遇自己源码加密后没备份,可以找我们解决解出恢复源码,任何加密都可以

本文转载于:

https://juejin.cn/post/7221350704471785530

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

记录-JavaScript常规加密技术的更多相关文章

  1. 详解升讯威在线客服系统前端 JavaScript 脚本加密技术(1)

    我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 这段时间有几个技术小伙伴问了我一个有意思的问题:"你的前端脚本是 ...

  2. 非对称加密技术中,iFace [ 爱妃链 ]人脸密钥技术排名第三,将弥补区块链现有不足

    最近,区块链领域,出现了一个比较热门技术的讨论,人脸密钥技术,可能大家还对这个名词感到很陌生,但是熟悉加密技术的技术大牛可能一听就能够明白大体的意思了,但是也正是这一熟悉而陌生的技术名词,掀起了区块链 ...

  3. 非对称加密技术里面,最近出现了一种奇葩的密钥生成技术,iFace人脸密钥技术

    要说到非对称加密技术啊,得先说说对称加密技术 什么是对称加密技术 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥加密. 也就是密钥也可以用作解密密钥,这种方法在密码学中叫做对称 ...

  4. 【云安全与同态加密_调研分析(8)】同态加密技术及其应用分析——By Me

    ◆同态加密技术(Homomorphic Encryption, HE)及其应用◆ ◆加密方案◆ ◆应用领域◆ ◆厂商◆ ◆同态加密现有产品形态和工程实现◆ ◆参考链接◆ ◆备注(其他参考信息)◆ 同态 ...

  5. PCB .NET Reactor 加密工具(NecroBit加密技术)

    在PCB行业中,我们使用的软件或脚本绝大多数都用非编译型语言写程序,而从一开始选择这种编程语言,就注定了程序的源码有被曝露风险.我们PCB工程系统用.NET语言编写,C#编译后会被转换为IL代码的中间 ...

  6. MD5和sha1加密算法--散列加密技术 MD5:128bit的大整数

    在很多电子商务和社区应用中,我们都要存放很多的客户的资料,其中包括了很多的隐私信息和客户不愿被别人看到的信息,当然好有客户执行各种操作的密码,此时就需要对客户的信息进行加密再存储,目前有两种比较好的加 ...

  7. PHP加密技术

    一.MD5加密 直接干,这里以一个登录页面为例: <?php require_once 'config/database.config.php'; $act=$_REQUEST['act']; ...

  8. 前端html、Javascript、CSS技术小结

    简单地总结了一下前端用过的html.javascript.css技术,算是清点一下,做个大略的小结,为进一步的学习给个纲领. 一.HTML 由于HTML5的兴起,简单地判断一个网页是否是html5网页 ...

  9. Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC

    Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC 博客分类: Java/Security Javabase64macmd5sha     加密解密,曾经是我一 ...

  10. 斯诺登称NSA攻破互联网加密技术

    据财新网报道,本已渐渐平静的斯诺登泄密事件在9月6日再掀波澜.英国<卫报>.美国<纽约时报>和美国非盈利调查新闻机构ProPublica联合报道称,根据斯诺登提供的大量文件,美 ...

随机推荐

  1. BeginCTF 2024(自由赛道)MISC

    real check in 题目: 从catf1y的笔记本中发现了这个神秘的代码 MJSWO2LOPNLUKTCDJ5GWKX3UN5PUEM2HNFXEGVCGL4ZDAMRUL5EDAUDFL5M ...

  2. Power BI 1 DAY

    目录 Power BI(商业智能)分析 BI 分析步骤 Power Query 表数据结构 区别 主键 Power Query中的纵向合并与横向合并 销售一表和销售二表进行纵向合并为一张销售表. 产品 ...

  3. Ubuntu安装PHP和NGINX环境

    Ubuntu安装PHP和NGINX环境 介绍 PHP-FPM PHP-FPM 是 PHP FastCGI Process Manager 的缩写,是 FastCGI 进程管理器. PHP-FPM 是基 ...

  4. CF-928(已更新:B C E)

    CF-928 排名四千多,目前为止排名最高的一场~ E题我赛时基本上是猜的结论(但是也推了快一小时才想到有这个可能性),因此目前只能放个码在这(⊙﹏⊙) D的话问了学长思路,正在补了0-^-0 --但 ...

  5. 在PWM控制下的直流有刷电机性能优化

    结论 为了避免各位浪费时间, 先说结论: 选择合适的电机驱动模式和PWM频率, 能大幅提升直流电机的性能和可控性, 在常见的48:1减速电机上, 使用慢衰减模式和低于100Hz的PWM频率, 能达到最 ...

  6. 【Unity3D】立方体纹理(Cubemap)和天空盒子(Skybox)

    1 立方体纹理(Cubemap) ​ 本文完整资源见 → 立方体纹理(Cubemap)和天空盒子(Skybox) . ​ 1)立方体纹理简介 ​ 立方体纹理是指由上.下.左.右.前.后 6 张纹理组成 ...

  7. Hi3516开发笔记(八):Hi3516虚拟机交叉开发环境搭建之配置QtCreator开发交叉编译环境

    海思开发专栏 上一篇:<Hi3516开发笔记(七):Hi3516虚拟机交叉开发环境搭建之交叉编译Qt>下一篇:<Hi3516开发笔记(九):在QtCreator开发环境中引入海思sd ...

  8. startswith/endswith传元组用法

    className = ["jd_num01","jd_num02","tx_num01", "tx_num02", & ...

  9. 一分钟带你了解mySql执行SQL的内部原理

    1.把MySQL当个黑盒子一样执行SQL语句 我们知道执行了insert语句之后,在表里会多出来一条数据:执行了update语句之后,会对表里的数据进行更改:执行了delete语句之后,会把表里的一条 ...

  10. 第125篇: 期约Promise基本特性

    好家伙,本篇为<JS高级程序设计>第十章"期约与异步函数"学习笔记 1.非重入期约 1.1.可重入代码(百度百科) 先来了解一个概念 可重入代码(Reentry cod ...