猿问

阅读一段js关于加密功能的代码,一处不大理解

整段代码的功能用来加密信息。加密的前提是从先接口获取一个base64的随机字符串字段mapString,并解码base64。代码里为何使用构造动态函数并执行的方式来获取解码值,而不直接去decode获取,这样写的用意何在,是出于安全考虑吗?

// 一下为原始代码
 let safety = Function('return ' + base64decode(mapString))()

 // 为何不直接使用这种方式
  let safety = base64decode(mapString)


慕侠2389804
浏览 422回答 2
2回答

Smart猫小萌

这个得看你mapString解码后是什么,如要引用的某个全局变量的值,就需要Function直接 let safety = base64decode(mapString)就是变量名而let safety = Function('return ' + base64decode(mapString))()得到的是变量的值,因为return 返回变量值

一只萌萌小番薯

解码回来的应该是一个字符串的数组吧。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答