您现在的位置是:网站首页> HTML&JS

URL参数加密详解

  • HTML&JS
  • 2023-12-03
  • 665人已阅读
摘要

一、URL参数加密JS

在前端,可以使用JavaScript对URL参数进行加密。首先,将需要加密的参数转成字符串,然后将字符串转成Unicode编码。可以使用encodeURIComponent()函数实现这一过程。


function encryptParam(param) {

  let str = JSON.stringify(param);

  let unicodeStr = encodeURIComponent(str);

  return unicodeStr;

}

这里使用JSON.stringify()来转换参数为字符串,再使用encodeURIComponent()对字符串进行编码。这样,参数就被成功加密了。


二、URL参数加密了怎么爬取

如果URL参数被加密了,那么在爬取的时候会带来一定的难度。如果使用普通的爬虫程序来爬取,可能无法直接获取加密的参数值,这时需要使用其他的技巧。


一种方法是使用浏览器开发者工具进行调试,在控制台中查看网络请求的请求参数。另外,也可以使用浏览器插件或脚本进行模拟,直接模拟网站的操作,并获取加密的参数值。


但值得注意的是,网站对于参数的加密可能是为了保护用户隐私或防止爬虫,爬虫应遵守网络爬虫的规范,不得恶意爬取。


三、URL参数加密算法

URL参数加密算法多种多样,下面简单介绍一些常见的加密算法。


1、Base64编码

Base64是一种将二进制数据转换成ASCII字符的编码方式。可以将任意二进制数据转化为纯文本,常用于邮件传输、表示图片、传输json数据等场景。


// Base64加密

function encryptParam(param) {

  let str = JSON.stringify(param);

  let Base64Str = window.btoa(str);

  return Base64Str;

}


// Base64解密

function decryptParam(Base64Str) {

  let str = window.atob(Base64Str);

  let param = JSON.parse(str);

  return param;

}

2、MD5加密

MD5(Message-Digest Algorithm 5)是一种消息摘要算法,可以将任意消息变成128位的哈希值,通常用于密码存储等场景。


// MD5加密

function encryptParam(param) {

  let str = JSON.stringify(param);

  let md5Str = CryptoJS.MD5(str).toString();

  return md5Str;

}

3、AES加密

AES(Advanced Encryption Standard)是一种对称加密算法,常用于数据传输、数据存储、数字签名等场景。


// AES加密

function encryptParam(param) {

  let str = JSON.stringify(param);

  let key = CryptoJS.enc.Utf8.parse('1234567812345678');

  let iv = CryptoJS.enc.Utf8.parse('1234567812345678');

  let encrypted = CryptoJS.AES.encrypt(str, key, {

    iv: iv,

    mode: CryptoJS.mode.CBC,

    padding: CryptoJS.pad.Pkcs7

  });

  return encrypted.toString();

}


// AES解密

function decryptParam(encryptedStr) {

  let key = CryptoJS.enc.Utf8.parse('1234567812345678');

  let iv = CryptoJS.enc.Utf8.parse('1234567812345678');

  let decrypted = CryptoJS.AES.decrypt(encryptedStr, key, {

    iv: iv,

    mode: CryptoJS.mode.CBC,

    padding: CryptoJS.pad.Pkcs7

  });

  let str = decrypted.toString(CryptoJS.enc.Utf8);

  let param = JSON.parse(str);

  return param;

}

四、URL参数加密解密

在前面的例子中,我们展示了URL参数的加密方法,也展示了Base64、MD5、AES三种常见的加密算法。如果加密了参数,必须要有对应的解密方法才能够使用。


// 加密参数

let param = {

  name: '张三',

  age: 20

};

let encryptedParam = encryptParam(param);


// 解密参数

let decryptedParam = decryptParam(encryptedParam);

console.log(decryptedParam); // { name: '张三', age: 20 }

五、URL参数加密的作用

URL参数的加密可以增加数据传输的安全性,防止敏感参数被窃取或篡改。比如,用户在提交表单数据时,可以将表单数据进行加密,再将加密后的数据作为参数传递给后端接口。这就可以防止黑客通过篡改URL参数来修改用户的数据。


六、URL参数加密解密传递

在前后端分离的架构中,由于前端和后端是分离的,因此需要对URL参数进行加密解密传递。


通常的做法是,在前端对参数进行加密,然后将加密后的参数作为请求参数传递给后端。后端接收到请求后,再对参数进行解密,以便进行后续的处理。


七、URL参数加密都是用的什么

在实际的开发中,URL参数的加密可以使用多种方式,比如上文介绍的Base64编码、MD5加密、AES加密等。


八、前端get请求URL参数加密算法

在前端get请求中,URL参数的加密算法可以选择Base64编码、MD5加密、AES加密等。


下面是一个使用Base64编码的例子:


let param = {

  name: '张三',

  age: 20

};

let encryptedParam = encryptParam(param);

let url = `https://api.example.com?param=${encryptedParam}`;


fetch(url)

  .then(response => response.json())

  .then(data => {

    console.log(data);

  })

  .catch(error => {

    console.error(error);

  });

九、URL地址加密

除了URL参数的加密,还可以对整个URL地址进行加密。对URL地址加密可以增加访问该链接的安全性。


这里以Base64编码为例,使用window.btoa()函数对URL地址进行加密:


let url = 'https://www.example.com?param=value';

let encryptedUrl = window.btoa(url);


window.location.href = encryptedUrl;

对加密后的URL进行解密:


let encryptedUrl = window.location.href;

let url = window.atob(encryptedUrl);


console.log(url); // https://www.example.com?param=value

十、URL在线加

如果不想在代码中使用URL参数加密算法,可以使用在线工具进行加密。


一种常见的URL参数加密工具是URL Encoder/Decoder,使用该工具可以对URL进行编码和解码操作。


上一篇:chrome UDP

下一篇:HTML&JS同行者

Top