前端加密/解密方式

这篇具有很好参考价值的文章主要介绍了前端加密/解密方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

加密/解密应用场景

  • 前言: 通常在前后端之间数据传输经常会涉及到一些敏感数据、cookie携带的token加密等问题。

  • 提到加密,相对于后台开发来说,遇到最多的需要加密处理的应用场景应该是接口的加密签名校验了。不过这种一般都用于服务端与服务端之间的相互调用。因为没有暴露在外的代码这种加密校验相对比较安全。但javaScript不一样,它是运行在浏览器端的一种脚本语言。基本除了在sojson.v6加密过的js代码,黑客可以通过逆向分析你的js代码来盗取一些数据。

常用的js加密:

  • 对称加密(AES):用的同一个密钥进行加解密的

    优点: 速度快

    缺点: 在传输密钥过程中,这个密钥容易被拦截,导致密钥泄漏,安全性不高

  • 非对称加密(RSA): 生成密钥,分别为公钥和秘钥,公钥对数据进行加密,私钥对数据进行解密

    优点: 只需要服务端把公钥,传递给前端,前端通过公钥进行加密,服务端通过私钥解密,安全性很高

    缺点: 速度慢

1、 js内置api(escape和unescape)

const code = 'hello world';

const _enCode = escape(code); // 加密

const _unescapeCode = unescape(code); // 解密

console.log('加密code前:', code); // 加密code前: hello world

console.log('加密code后:',_enCode); // 加密code后:hello%20world

console.log('解密code后:', _unescapeCode); // 解密code后: hello world

由此可以看到用escape函数加密后,字符变成了%开头形式的特殊编码。需要用unescape反编译回来。escape/unescape通常应用于url中携带数据加密较为多些。

2、md5加密

我这里演示借助了crypto插件(项目里安装了),没有的话可以自行安装一下,安装地址: https://github.com/brix/crypto-js


import Crypto from "crypto";

const user_key = 'md5_121212';

const passWord = Crypto.createHash('md5').update(`${user_key}\n`).digest('hex');

console.log('passWord:', passWord);

MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。md5加密一般用于确保文件和代码的唯一性,可以根据计算代码的md5值来判断代码是否被改变。不过md5属于对称加密范畴。

3、 des/aes加密方式

DES是一种使用密钥加密的块算法,已被美国联邦政府的国家标准局授权在非密级政府通信中使用

我这里演示借助了crypto插件(项目里安装了),没有的话可以自行安装一下,安装地址: https://github.com/brix/crypto-js

import crypto from "crypto";

const message = 'hello des';

const key = 9727;

const keyHex = crypto.enc.Utf8.parse(key);

const encrypted = crypto.DES.encrypt(
    message,
    keyHex,
    {

        mode: crypto.mode.ECB,

        padding: crypto.pad.Pkcs7,

    }
);
// 打印加密结果
console.log(encrypted.toString());
4、 RSA双向加密解密
  • RSA是被研究得最广泛的公钥算法,从提出到现在已近三十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

  • 使用:服务端和客户端分别生成自己的RSA密钥,服务端拿客户端的公钥,客户端拿服务端的公钥,彼此的数据都可以加解密,但是缺点很明显,就是加解密数据速度慢。

插件安装地址: https://github.com/rzcoder/node-rsa

import rsa from 'node-rsa';

const key = new rsa({b: 512});

const text = 'hello rsa!';

// 加密

const encrypted = key.encrypt(text, 'base64');
// 打印加密结果

console.log(encrypted);

// 解密

const decrypted = key.decrypt(encrypted, 'utf8');
// 打印解密结果
console.log(decrypted);

以上介绍了几种加密方式,希望可以帮助得到你,有错误也可指出可以互相交流交流。文章来源地址https://www.toymoban.com/news/detail-439461.html

到了这里,关于前端加密/解密方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端AES加密解密

    前端经常会遇到这种接口和参数需要加密的情况,目前用的最多的就是aes加密了。以下就是操作步骤。以下方式适用各个前端框架,请自行根据框架修改对应语法 1.安装 CryptoJS 这个库就是用来加密的核心,直接打开项目终端,输入 npm install crypto-js --save 2. 新建 crypto.js 在 @/

    2024年02月13日
    浏览(58)
  • 前端SM4加密解密

    前后端加密一致,如果不一致就是key有问题 调用方法: sm4.js文件

    2024年04月25日
    浏览(54)
  • 使用非对称加密(RSA) 实现前端加密后端解密

    数据加密方式有: 单向加密、对称加密、非对称加密、加密盐、散列函数、数字签名。 1、单向加密 单向加密通过对数据进行摘要计算生成密文,密文不可逆推还原。只能加密,不能解密,常用于提取数据的指纹信息以此来验证数据的完整性。但是会引发雪崩效应(雪崩效应

    2024年02月08日
    浏览(64)
  • 前端请求参数加密、.NET 后端解密

    本文详细介绍了前端请求参数加密、.NET 后端解密,文章较长,请各位看官耐心看完。 目录 一、前端使用“CryptoJS”,前端AES加密,.NET后端AES解密 1.1、加密解密效果图 1.2、CryptoJS介绍 1.3、准备工作:安装“CryptoJS” 1.3.1、使用npm进行安装 1.3.2、Visual Studio中安装 1.3.2.1、选择

    2024年02月08日
    浏览(71)
  • RSA之前端加密后端解密

    RSA加密解密方式有: (1)公钥加密,私钥解密; (2)私钥加密,公钥解密; 此文章中以下我使用的是 前端公钥加密,后端私钥解密 ; http://web.chacuo.net/netrsakeypair 生成对应的公钥和私钥 前端加密js文件 : 链接: https://pan.baidu.com/s/1NIMayTcmjbMOf7BqPhPQoA 提取码: t7an 下载js文件并

    2024年02月21日
    浏览(51)
  • AES对称加密实战——前端js加密后端python解密

    高级加密标准(AES, Advanced Encryption Standard),是一种最常见的对称加密算法 。其加密流程如下图所示,发送方通过密钥对明文加密后进行网络传输,接收方用同样的密钥将密文解密。在前后端通讯场景中,可利用AES算法对用户密码进行加密后传输,防止被抓包而造成密码泄露。

    2024年02月04日
    浏览(59)
  • 前端sm2国密加密解密

    1.下载国密包 2.获取后端的公钥 注sm-crypto使用BC库加解密前端密钥与后端密钥是两队,非常规的base64密钥 前端公钥需要在前面加04占位否则无法解密 3.前端使用公钥进行加密 生成的加密串加04方便后端解密 4.前端使用私钥解密

    2024年02月11日
    浏览(58)
  • 国密SM2前端加密解密示例

    目录 一、 安装sm2依赖 二、编写代码 1、data中绑定数据 2、公钥加密 3、私钥解密 4、按钮绑定一下,数据可见一下 三、完整代码 要改变的数据phone和过程数据copyphone,公钥publicKey和私钥privateKey 具体生成测试公钥私钥可参照SM2加解密 C1为65字节第1字节为压缩标识,这里固定为

    2024年02月03日
    浏览(65)
  • PHP非对称与对称双向加密解密的方式

    目录 RSA非对称加密解密: 什么是RSA非对称加密解密解析: 解析: 为什么使用: 有什么优点: DEMO: AES、DES、3DES等对称加密解密: 解析: 为什么使用: 有什么优点: DEMO: 什么是RSA非对称加密解密解析: 解析: RSA非对称加密解密算法是一种广泛应用于信息安全领域的加密算法。它不同于

    2024年02月07日
    浏览(74)
  • encrypt-js 前端 的加密解密

    1.    跟后端人员约定好偏移量 encrypt是 加密的方法 decrypt是解密的方法 定义一个 工具包 import {encrypt} from \\\"./aes.js\\\";  引入方法 直接使用 let data=encrypt(加密的内容)

    2024年04月17日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包