`

javascript加密后最简单的解密方式

阅读更多

今天从网上看到了一个挺好的javascript的工具,想了解他的原理,结果发现他是加密的,由于文件比较大,查询了很多种方法没有找到解析的办法,下载了很多工具,都怀疑机器都要中毒了也没有找到解决办法,偶尔的一个机会找到了解决方案。

不过他加密成什么样子,ie是应该可以认识他的,那我就用ie对他进行读取,然后让ie将内容输出出来就可以看到源码了,结果发现还真的可以。

具体代码如下

<script type="text/javascript">
    document.write("加密文本的文件内容,不要包含eval");

</script>

运行后就可以再ie里面直接看到他的文本了。

但是这样我解密的文字缺少了一部分,通过如下的函数可以全部解析出来,

----------------

<script>
a=62;
function encode() {
 var code = document.getElementById('code').value;
 code = code.replace(/[\r\n]+/g, '');
 code = code.replace(/'/g, "\\'");
 var tmp = code.match(/\b(\w+)\b/g);
 tmp.sort();
 var dict = [];
 var i, t = '';
 for(var i=0; i<tmp.length; i++) {
   if(tmp[i] != t) dict.push(t = tmp[i]);
 }
 var len = dict.length;
 var ch;
 for(i=0; i<len; i++) {
   ch = num(i);
   code = code.replace(new RegExp('\\b'+dict[i]+'\\b','g'), ch);
   if(ch == dict[i]) dict[i] = '';
 }
 document.getElementById('code').value = "eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}("
   + "'"+code+"',"+a+","+len+",'"+ dict.join('|')+"'.split('|'),0,{}))";
}

function num(c) {
 return(c<a?'':num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36));
}

function run() {
 eval(document.getElementById('code').value);
}

function decode() {
 var code = document.getElementById('code').value;
 code = code.replace(/^eval/, '');
 document.getElementById('code').value = eval(code);
}
</script>


<textarea id=code cols=80 rows=20>

</textarea>
 
<input type=button onclick=encode() value=编码>
<input type=button onclick=run() value=执行>
<input type=button onclick=decode() value=解码>


本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/9705.htm

分享到:
评论

相关推荐

    javascript DES加密解密算法

    在解密后,可能需要将结果转换回原始的字符串格式。 5. 安全性考虑:DES由于其较短的密钥长度,已被破解的可能性较大。在实际项目中,通常会采用更安全的算法如3DES(Triple DES)或AES,它们提供了更强的安全性。 ...

    javascript将url中的参数加密解密代码

    - 最后,将解密后的字符拼接成原始字符串。 通过这段代码,我们可以有效地对URL中的参数进行加密和解密,保护数据安全。然而,需要注意的是,这种方法虽然简单实用,但并不适用于高强度的安全需求,因为它是基于...

    java,php,GOLang,JavaScript,AES加密解密代码互通

    4. **JavaScript的AES ECB加密解密**: JavaScript中的AES加密通常依赖于第三方库,如CryptoJS。设置加密模式和密钥,然后使用`AES.encrypt`和`AES.decrypt`进行操作。注意,JavaScript的加密结果通常以Base64编码...

    国密SM4算法前后端加密解密完整代码.zip

    ECB(Electronic Codebook)模式是最简单的加密模式,每个数据块独立加密,但不适用于有重复模式的数据,因为它可能会导致相同的明文块加密后产生相同的密文块,从而暴露信息。 CBC(Cipher Block Chaining)模式则...

    aes 前端加密 后端c# 解密

    以下是一个简单的C#解密示例,对应于前端加密的代码: ```csharp using System; using System.Text; using System.Security.Cryptography; public class AESDecryption { public static string Decrypt(string ...

    php+uni-app AES加密解密.rar

    - 验证:解密后,可以通过消息认证码(MAC)或数字签名验证数据的完整性和来源。 综上所述,PHP和uni-app都能有效地利用AES加密算法进行数据保护。在实际开发中,理解并正确使用这些技术对于保护用户数据和维护...

    VueJs里利用CryptoJs实现加密及解密的方法示例

    而CryptoJS是一个广泛使用的JavaScript加密库,可以用来在客户端加密和解密数据。本篇文章将通过实例演示在Vue.js应用中集成CryptoJS来进行数据的加密和解密操作。 首先,我们需要安装CryptoJS。在项目目录下,可以...

    Javascript加密解密

    ### JavaScript加密解密技术详解 #### 一、背景与需求 在Web开发中,JavaScript作为前端编程语言之一,被广泛应用于网页动态效果的实现。然而,由于JavaScript代码是在客户端浏览器中执行的,这使得它很容易被他人...

    aes加密解密

    填充方法有多种,ZeroPadding是最简单的,但也可能带来某些安全问题,例如在某些情况下可能会泄露数据长度信息。 在实际应用中,通常会使用更安全的填充方式,如PKCS#7,它不仅填充0,而且在填充的最后一个字节会...

    javascript经典特效---字符的加密解密.rar

    1. **异或加密**:这是最基础的加密方式之一,两个二进制数进行异或操作,如果结果相同则为0,不同则为1。在JavaScript中,可以通过异或运算符"^"实现。这种方法简单但安全性较低,容易被破解。 2. **MD5和SHA系列*...

    凯撒密码加密解密

    凯撒密码,又称移位密码,是历史上最早且最简单的替换式加密技术之一。它以古罗马将军朱利叶斯·凯撒的名字命名,因为这种密码曾被他用于军事通信。凯撒密码的核心原理是在字母表上按照固定步长进行字母的平移,即每...

    AES-128-CBC加密解密

    在解密时,将接收到的密文块解密,然后与上一个解密后的明文块异或,得到原始的明文块。 6. 存储和传递IV:因为每个加密过程都使用了一个新的IV,所以需要将其与加密后的数据一起存储或传递,以便解密时使用。 7. ...

    基于PHP和JS的AES相互加密解密方法源码 亲测有效

    这个压缩包包含了实现这个示例所需的所有文件,包括HTML界面、JavaScript加密函数、PHP解密函数以及可能依赖的库。你可以下载并运行这个例子,了解AES加密解密的基本过程。通过这种方式,你可以在Web应用中确保用户...

    des java js 加密解密

    总结来说,DES加密解密在Java和JavaScript中都能实现,并且通过选择相同的算法模式和填充方式,可以确保加密解密结果的一致性。在实际项目中,根据具体需求和环境,选择适合的语言进行数据加密是非常重要的。同时,...

    js加密、解密、编码等工具合集

    JavaScript是一种广泛应用于网页和网络应用的脚本语言,它的强大之处在于可以处理用户交互、操作DOM、进行数据交换以及执行各种安全操作,如加密、解密和编码。在这个"js加密、解密、编码等工具合集"中,包含三个...

    Javascript实现Aes加密 中文WORD版

    例如,CryptoJS是一个流行的JavaScript加密库,包含了AES算法的实现。 首先,你需要引入CryptoJS库,可以通过CDN链接或者下载后本地引用。然后,你可以创建一个密钥和初始化向量(IV),这两个是AES加密过程中的...

    js网页界面实现DES算法支持中文加密解密

    - `des`函数接收四个参数:`key`(密钥)、`message`(明文或密文)、`encrypt`(指示是否进行加密的布尔值,通常为1表示加密,0表示解密)以及`mode`和`iv`(这些参数在这个简单的示例中没有用到)。 - 函数内部...

    C#/JS AES字符串加密和解密

    // 读取解密后的字符串 string plaintext = srDecrypt.ReadToEnd(); Console.WriteLine("Decrypted Text: " + plaintext); } } ``` 在这个例子中,后端首先需要将接收到的密文和密钥转换为适当的格式,然后使用...

    CryptoJS JavaScript的加解密的工具包

    CryptoJS是JavaScript开发中的一个强大工具包,专门用于加密和解密操作,尤其在Web应用中,它提供了一种安全的方式来处理敏感数据。这个库由Jeff Mott开发,旨在为JavaScript开发者提供多种加密算法,使得在浏览器...

    js DES加密、解密支持中文

    在JavaScript中实现DES加密,通常会借助于一些库,例如crypto-js,这是一个非常流行的JavaScript加密库,提供了包括DES在内的多种加密算法。 在处理中文字符时,由于JavaScript字符串通常是UTF-8编码,我们需要先将...

Global site tag (gtag.js) - Google Analytics