url 地址中的敏感信息脱敏处理

发布时间:2024年01月15日

url 跳转时,系统自动加密解密处理,适用于调用方不适合加密处理的情况

// 定义一个名为encodeURIUrlParams的函数  
encodeURIUrlParams() {  
  // 创建一个URLSearchParams对象,该对象用于处理URL的查询字符串部分  
  const urlParams = new URLSearchParams(window.location.search)  
  // 创建一个空对象用于存储解码后的参数  
  const params = {}  
  
  // 使用Array.from方法将URLSearchParams对象转化为数组,并使用map方法遍历数组  
  Array.from(urlParams).map(arr => {  
    // 获取当前参数的键和值  
    const [key, value] = arr  
    // 将参数的键和值存储到params对象中  
    params[key] = value  
    // 如果参数的键不是'clz',则对值进行加密,并将加密后的值重新设置回URLSearchParams对象中  
    if (key !== 'clz') {  
      urlParams.set(key, this.encrypt(value, 3))  
    }  
  })  
  
  // 如果params对象中包含'encrypt'键,则对除'clz'外的所有参数值进行解密,并将解密后的值重新设置回params对象中  
  if (Object.keys(params).includes('encrypt')) {  
    Object.keys(params).map(key => {  
      if (key !== 'clz') params[key] = this.decrypt(params[key], 3)  
    })  
    // 返回解密后的params对象  
    return params  
  } else {  
    // 如果params对象中不包含'encrypt'键,则向params对象中添加'encrypt'键,并将其值设置为'1'  
    params.encrypt = '1'  
    // 向URLSearchParams对象中添加'encrypt'键,并将其值设置为'1'  
    urlParams.set('encrypt', '1')  
  }  
  // 创建一个新的URL对象,该对象的查询字符串部分由URLSearchParams对象的toString方法生成  
  const newUrl = new URL(window.location);  
  newUrl.search = urlParams.toString();  
  // 使用history.pushState方法将新的URL添加到浏览器历史记录中,并更新当前页面的URL为新的URL  
  history.pushState({}, '', newUrl);  
  // 返回解密后的params对象  
  return params  
}
文章来源:https://blog.csdn.net/weixin_46399670/article/details/135547047
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。