js怎么解密,js解密工具js怎么查看这些代码麻烦给解决一下

JavaScript095

js怎么解密,js解密工具js怎么查看这些代码麻烦给解决一下,第1张

首先你的加密后的代码有误,无法执行,应将return(c35?String.fromCharCode(c+29):

修改为return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):

c和35之间的部分你没复制出来

这种加密的算法的解密方法很简单

<html>

<body>

<div id="test"></div>

<script type="text/javascript">

document.getElementById('test').innerHTML = 将需要破解的代码全部复制过来,注意你原来的代码不对,请通过替换先将上面说的那个错误改正

</script>

</body>

</html>

将上面的代码保存成html文件,打开此文件即可看到加密前的内容,由于你的问题解密后是广告语,所以不在此处给出,自己试一下

一般压缩都经过混淆,如果你看到变量名都是A,B,C,D之类的无规则的命名,那就是被混淆过的,一般来说也很难阅读,就算你 还原了格式。

如果是没有混淆的,你可以试试用js的格式化工具来重新格式化一下的,比如:

/* 美化:格式化代码,使之容易阅读 */

/* 净化:去掉代码中多余的注释、换行、空格等 */

/* 压缩:将代码压缩为更小体积,便于传输 */

/* 解压:将压缩后的代码转换为人可以阅读的格式 */

/* 混淆:将代码的中变量名简短化以减小体积,但可读性差,经混淆后的代码无法还原 */

/* 如果有用,请别忘了推荐给你的朋友: */

/* javascript在线美化、净化、压缩、解压:http://tool.lu/js */

/* 以下是演示代码 */

var Inote = {}

Inote.JSTool = function(options) {

this.options = options || {}

}

Inote.JSTool.prototype = {

_name: 'Javascript工具',

_history: {

'v1.0': ['2011-01-18', 'javascript工具上线'],

'v1.1': ['2012-03-23', '增加混淆功能'],

'v1.2': ['2012-07-21', '升级美化功能引擎'],

'v1.3': ['2014-03-01', '升级解密功能,支持eval,window.eval,window["eval"]等的解密'],

'v1.4': ['2014-08-05', '升级混淆功能引擎'],

'v1.5': ['2014-08-09', '升级js压缩引擎'],

'v1.6': ['2015-04-11', '升级js混淆引擎']

},

options: {},

getName: function() {return this._name},

getHistory: function() {

return this._history}

}

var jstool = new Inote.JSTool()

用javascript实现rsa加解密的实现方式是通过PKCS完成的。

1、整个定义的function

function pkcs1pad2(s,n) {

if(n <s.length + 11) { // TODO: fix for utf-8

alert("Message too long for RSA")

return null

}

var ba = new Array()

var i = s.length - 1

while(i >= 0 &&n >0) {

var c = s.charCodeAt(i--)

//UTF-8编码为变长字节,使用实际的字节来记录

if(c <128) { // encode using utf-8

ba[--n] = c

}

else if((c >127) &&(c <2048)) {

ba[--n] = (c &63) | 128

ba[--n] = (c >>6) | 192

}

else {

ba[--n] = (c &63) | 128

ba[--n] = ((c >>6) &63) | 128

ba[--n] = (c >>12) | 224

}

}

//实际输入拼装结束,将下一位赋值为0标记结束

ba[--n] = 0

var rng = new SecureRandom()

var x = new Array()

//拼接随机非0字节

while(n >2) { // random non-zero pad

x[0] = 0

while(x[0] == 0) rng.nextBytes(x)

ba[--n] = x[0]

}

//这两位做简单的校验

ba[--n] = 2

ba[--n] = 0

return new BigInteger(ba)

}

该方法中对UTF-8字符进行了兼容,并且在拼装完实际输入的字符后,还拼装了随机的字节,使用拼装后的字符串去加密。由于每次拼装的结果是随机的,这样每次加密后的密文都不同。

2、调用方法:;

function RSAEncrypt(text) {

var m = pkcs1pad2(text,(this.n.bitLength()+7)>>3)

if(m == null) return null

var c = this.doPublic(m)

if(c == null) return null

var h = c.toString(16)

if((h.length &1) == 0) return helse return "0" + h

}