首页 > 其他分享 >常用JS加密/解密类型以及案例

常用JS加密/解密类型以及案例

时间:2023-10-18 20:06:05浏览次数:40  
标签:加密 text 解密 JS 哈希 var World Hello

常用JS加密/解密类型以及案例_JS安全

简介

这里给大家汇总常用不常用的JS加密案例,免得大家用的时候到处去找例子。

正题

  1. 对称加密
  • 替代字符表示法:使用Base64或类似的编码对数据进行简单的转换,不过这并不是真正的加密,而只是一种表示形式的转换。
<!DOCTYPE html>
<html>
<body>

<h2>Base64编码示例</h2>

<p>原始文本: Hello, World!</p>

<p>Base64编码结果:</p>
<p id="encoded-text"></p>

<script>
    var text = "Hello, World!";
    var encodedText = btoa(text);
    document.getElementById("encoded-text").innerHTML = encodedText;
</script>

</body>
</html>
  • JavaScript加密库:通过在HTML中嵌入JavaScript加密库,可以实现一些对称加密算法,如AES(Advanced Encryption Standard)等。
// AES
<!DOCTYPE html>
<html>
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
</head>
<body>

<h2>AES加密示例</h2>

<p>原始文本: Hello, World!</p>

<p>AES加密结果:</p>
<p id="encrypted-text"></p>

<script>
    var plaintext = "Hello, World!";
    var passphrase = "MySecretPassphrase";

    // Encrypt
    var encryptedText = CryptoJS.AES.encrypt(plaintext, passphrase).toString();

    document.getElementById("encrypted-text").innerHTML = encryptedText;
</script>

</body>
</html>

  1. 非对称加密
  • RSA加密:通过使用JavaScript实现RSA算法,可以在浏览器中进行非对称加密。但是这种方法可能存在性能问题,尤其是在处理大量数据时。
<!DOCTYPE html>
<html>
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jsencrypt/3.0.0/jsencrypt.min.js"></script>
</head>
<body>

<h2>RSA加密示例</h2>

<p>原始文本: Hello, World!</p>

<p>RSA加密结果:</p>
<p id="encrypted-text"></p>

<script>
    var text = "Hello, World!";
    var encrypt = new JSEncrypt();
    var publicKey = "YOUR_PUBLIC_KEY"; // 请用真实的公钥替换
    encrypt.setPublicKey(publicKey);
    var encrypted = encrypt.encrypt(text);
    document.getElementById("encrypted-text").innerHTML = encrypted;
</script>

</body>
</html>
  • JavaScript加密库:使用JavaScript加密库如OpenSSL或其他JavaScript加密库,可以在HTML中实现非对称加密功能。
const crypto = require('crypto');

const plaintext = 'Hello, World!';
const publicKey = `-----BEGIN PUBLIC KEY-----
YOUR_PUBLIC_KEY
-----END PUBLIC KEY-----`; // 请用实际的公钥替换

const encrypted = crypto.publicEncrypt(publicKey, Buffer.from(plaintext));

console.log(encrypted.toString('base64'));

  1. 哈希加密
  • MD5/SHA-1/SHA-256等哈希算法:通过JavaScript实现这些哈希算法,可以对数据进行单向的哈希加密,生成相应的哈希值。
  • MD5哈希加密
  • JavaScript加密库:一些JavaScript加密库提供了多种哈希算法的实现,可以直接在HTML中调用这些库来实现哈希加密。
htmlCopy code<!DOCTYPE html>
<html>
<body>

<h2>MD5哈希加密示例</h2>

<p>原始文本: Hello, World!</p>

<p>MD5哈希值:</p>
<p id="md5-hash"></p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
<script>
    var text = "Hello, World!";
    var md5Hash = CryptoJS.MD5(text).toString();
    document.getElementById("md5-hash").innerHTML = md5Hash;
</script>

</body>
</html>
  1. SHA-1哈希加密
htmlCopy code<!DOCTYPE html>
<html>
<body>

<h2>SHA-1哈希加密示例</h2>

<p>原始文本: Hello, World!</p>

<p>SHA-1哈希值:</p>
<p id="sha1-hash"></p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
<script>
    var text = "Hello, World!";
    var sha1Hash = CryptoJS.SHA1(text).toString();
    document.getElementById("sha1-hash").innerHTML = sha1Hash;
</script>

</body>
</html>
  1. SHA-256哈希加密
htmlCopy code<!DOCTYPE html>
<html>
<body>

<h2>SHA-256哈希加密示例</h2>

<p>原始文本: Hello, World!</p>

<p>SHA-256哈希值:</p>
<p id="sha256-hash"></p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
<script>
    var text = "Hello, World!";
    var sha256Hash = CryptoJS.SHA256(text).toString();
    document.getElementById("sha256-hash").innerHTML = sha256Hash;
</script>

</body>
</html>
  1. SSL/TLS
  • 使用HTTPS协议:尽管不是HTML本身的一部分,但可以通过在HTML页面中引用HTTPS链接来确保数据在传输过程中的安全性。

需要注意的是,在实际应用中,为了实现更强大的加密功能,往往需要借助其他技术。单一的对数据进行加密没有太大的作用,用户可以通过分析前端代码模拟出一样的加密内容。

为了进一步加大保护系数,建议使用jsjiami一键在线JS加密工具把所有逻辑加密一遍,变成看不懂的逻辑,但功能保持不变。

关于最后

如果有部分用户,在加密JS的时候,忘记备份自己的源代码导致源代码丢失,可以找上边网站的客服进行付费的人工解密服务。任何加密都可以,只要是js加密。

标签:加密,text,解密,JS,哈希,var,World,Hello
From: https://blog.51cto.com/u_15785573/7921740

相关文章

  • vue项目运行内存不足 JS stacktrace
     因为node配置的环境变量默认是4096,如果vue项目过大,可能就会导致保存的时候,项目死掉。解决办法:1、我的电脑右键属性 2、搜索环境变量,点击编辑系统环境变量 3、点击环境变量4、更改默认值......
  • TS 踩坑笔记: 箭头函数添加泛型报错(Error: JSX element ‘T’ has no corresponding
    前言今天给大家分享一个在React项目中使用TypeScript遇到的错误项目背景React+TS的项目配置,项目中关于React组件的使用.tsx后缀,其他单纯的文件使用.ts后缀问题描述在React组件附近定义泛型的箭头函数时产生TS报错警告,原本以为是语法写错了但是实际上在.t......
  • vue 动态引入 js 文件
    在目录比如utils/options/下面建不同名字的js,再根据 this.type变量的值动态引入。(注意this.type变量的值要和相对应的js文件名一致onLoad(options){this.type=options&&options.typeconstfile=require(`@/utils/options/${this.type}.js`)t......
  • C# 实现MD5加密
    C#MD5加密日常程序开发中,涉及到敏感数据内容,通常会采取加密处理以保证数据安全,本篇文章讲述了在C#中使用MD5方法加密数据MD5介绍MD5的全称是message-digestalgorithm5,MD5算法属于hash算法的一类,对消息进行运算,产生一个128位的消息摘要(32位数字字母),并且加密不可逆,相同数据......
  • JS 通过年份获取月,季度,半年度,年度
    ​ 功能描述:实例化一个函数,给函数内传递不同的参数,获取从起始年份到现在年度所有的月份,季度,半年度,年度动态演示  ---------正文代码开始--------1.封装函数 createMonth注:此代码可直接复制黏贴使用functioncreateMonth(){lettypeText="";lettoday=ne......
  • JS数组对象合并,a,b 合并为c
    vara=[{id:2,nickname:"韩信",checked:false},{id:7,nickname:"刘邦",checked:true},];varb=[{id:2,nickname:"韩信",checked:false},{id:7,nickname:"刘邦",checked:false},{id:8,nickname:&......
  • keydb 6.3.3 modjs docker 镜像
    keydb6.3.3已经发布一段时间了,但是ModJS的支持镜像一直还没有提供,就基于现有的基础镜像搞了一个方便学习使用Dockerfile FROMeqalpha/modjsasbase FROMeqalpha/keydb:latestRUNmkdir-p/usr/lib/keydb/modules#Copyoverprecompiledubuntu1......
  • js中数组的各种遍历方式
    一、ES5中数组遍历方式letarr=[1,2,3,2,4]1、for循环for(leti=0;i<arr.length;i++){console.log(arr[i])}//123242、forEach():没有返回值,调用数组的每个元素,并将元素传递给回调函数。//参数:item(必需)->当前元素//index(可选)->......
  • JsonPath使用(Java)
    JsonPath使用(Java)Java有一些类似于jq的语法库和工具。其中一个叫做JsonPath,它允许使用类似于jq的语法来查询和操作JSON数据。可以使用JsonPath来提取特定的JSON字段、过滤数据、执行计算等操作。另外,还有一些其他的Java库和框架也提供了类似的功能,比如FastJson,Gson和Jackson。这......
  • app直播源码,android AES加密解密实现
     app直播源码,androidAES加密解密实现importandroid.util.Base64;importandroid.util.Log; importjava.security.Key; importjavax.crypto.Cipher;importjavax.crypto.SecretKeyFactory;importjavax.crypto.spec.DESedeKeySpec;importjavax.crypto.spec.IvParameterSpe......