使用JScript.encode进行网页的加密与解密

我们常常看到类似新浪上面的视频播放页面源文件是一堆乱码,实际上是经过JScript加密过的代码,这样可以防止普通用户轻易的找到视频源文件地址,从而盗链,下面把JScript加密解密的方法整理了一下:


申明:下面代码非本人原创,而是经过收集和整理的结果,由于原作者不祥,在此特说明。

JScript.encode实现加密解密的脚本代码如下:

<script language="JavaScript">
<!--
function screncode(s,l)
{enc=new ActiveXObject("Scripting.Encoder");
return enc.EncodeScriptFile("."+l,s,0,l+"cript");
}
 
var STATE_COPY_INPUT = 100
var STATE_READLEN = 101
var STATE_DECODE = 102
var STATE_UNESCAPE = 103
 
var pick_encoding = new Array(
1, 2, 0, 1, 2, 0, 2, 0, 0, 2, 0, 2, 1, 0, 2, 0,
1, 0, 2, 0, 1, 1, 2, 0, 0, 2, 1, 0, 2, 0, 0, 2,
1, 1, 0, 2, 0, 2, 0, 1, 0, 1, 1, 2, 0, 1, 0, 2,
1, 0, 2, 0, 1, 1, 2, 0, 0, 1, 1, 2, 0, 1, 0, 2
)
 
var rawData = new Array(
0x64,0x37,0x69, 0x50,0x7E,0x2C, 0x22,0x5A,0x65, 0x4A,0x45,0x72,
0x61,0x3A,0x5B, 0x5E,0x79,0x66, 0x5D,0x59,0x75, 0x5B,0x27,0x4C,
0x42,0x76,0x45, 0x60,0x63,0x76, 0x23,0x62,0x2A, 0x65,0x4D,0x43,
0x5F,0x51,0x33, 0x7E,0x53,0x42, 0x4F,0x52,0x20, 0x52,0x20,0x63,
0x7A,0x26,0x4A, 0x21,0x54,0x5A, 0x46,0x71,0x38, 0x20,0x2B,0x79,
0x26,0x66,0x32, 0x63,0x2A,0x57, 0x2A,0x58,0x6C, 0x76,0x7F,0x2B,
0x47,0x7B,0x46, 0x25,0x30,0x52, 0x2C,0x31,0x4F, 0x29,0x6C,0x3D,
0x69,0x49,0x70, 0x3F,0x3F,0x3F, 0x27,0x78,0x7B, 0x3F,0x3F,0x3F,
0x67,0x5F,0x51, 0x3F,0x3F,0x3F, 0x62,0x29,0x7A, 0x41,0x24,0x7E,
0x5A,0x2F,0x3B, 0x66,0x39,0x47, 0x32,0x33,0x41, 0x73,0x6F,0x77,
0x4D,0x21,0x56, 0x43,0x75,0x5F, 0x71,0x28,0x26, 0x39,0x42,0x78,
0x7C,0x46,0x6E, 0x53,0x4A,0x64, 0x48,0x5C,0x74, 0x31,0x48,0x67,
0x72,0x36,0x7D, 0x6E,0x4B,0x68, 0x70,0x7D,0x35, 0x49,0x5D,0x22,
0x3F,0x6A,0x55, 0x4B,0x50,0x3A, 0x6A,0x69,0x60, 0x2E,0x23,0x6A,
0x7F,0x09,0x71, 0x28,0x70,0x6F, 0x35,0x65,0x49, 0x7D,0x74,0x5C,
0x24,0x2C,0x5D, 0x2D,0x77,0x27, 0x54,0x44,0x59, 0x37,0x3F,0x25,
0x7B,0x6D,0x7C, 0x3D,0x7C,0x23, 0x6C,0x43,0x6D, 0x34,0x38,0x28,
0x6D,0x5E,0x31, 0x4E,0x5B,0x39, 0x2B,0x6E,0x7F, 0x30,0x57,0x36,
0x6F,0x4C,0x54, 0x74,0x34,0x34, 0x6B,0x72,0x62, 0x4C,0x25,0x4E,
0x33,0x56,0x30, 0x56,0x73,0x5E, 0x3A,0x68,0x73, 0x78,0x55,0x09,
0x57,0x47,0x4B, 0x77,0x32,0x61, 0x3B,0x35,0x24, 0x44,0x2E,0x4D,
0x2F,0x64,0x6B, 0x59,0x4F,0x44, 0x45,0x3B,0x21, 0x5C,0x2D,0x37,
0x68,0x41,0x53, 0x36,0x61,0x58, 0x58,0x7A,0x48, 0x79,0x22,0x2E,
0x09,0x60,0x50, 0x75,0x6B,0x2D, 0x38,0x4E,0x29, 0x55,0x3D,0x3F
)
 
var transformed = new Array()
for (var i=0; i<3; i++) transformed[i] = new Array()
for (var i=31; i<=126; i++) for (var j=0; j<3; j++) transformed[j][rawData[(i-31) * 3 + j]] = (i==31) ? 9 : i
 
var digits = new Array()
for (var i=0; i<26; i++)
{
digits["A".charCodeAt(0)+i] = i
digits["a".charCodeAt(0)+i] = i+26
}
for (var i=0; i<10; i++) digits["0".charCodeAt(0)+i] = i+52
digits[0x2b] = 62
digits[0x2f] = 63
 
function unescape(char)
{
var escapes = "#&!*$"
var escaped = "\r\n<>@"
 
if (char.charCodeAt(0) > 126) return char
if (escapes.indexOf(char) != -1) return escaped.substr(escapes.indexOf(char), 1)
return "?"
}
 
function decodeBase64(string)
{
var val = 0
val += (digits[string.substr(0,1).charCodeAt(0)] << 2)
val += (digits[string.substr(1,1).charCodeAt(0)] >> 4)
val += (digits[string.substr(1,1).charCodeAt(0)] & 0xf) << 12
val += ((digits[string.substr(2,1).charCodeAt(0)] >> 2) << 8)
val += ((digits[string.substr(2,1).charCodeAt(0)] & 0x3) << 22)
val += (digits[string.substr(3,1).charCodeAt(0)] << 16)
return val
}
 
function strdec(encodingString)
{
 
var marker = "#@~^"
var stringIndex = 0
var scriptIndex = -1
var unEncodingIndex = 0
var char = null
var encodingLength = unEncodinglength = 0
var state = STATE_COPY_INPUT
var unEncodingString = ""
var re, arr
 
while(state)
{
switch (state)
{
case (STATE_COPY_INPUT) :
scriptIndex = encodingString.indexOf(marker, stringIndex)
if (scriptIndex != -1)
{
unEncodingString += encodingString.substring(stringIndex, scriptIndex)
scriptIndex += marker.length
state = STATE_READLEN
}
else
{
stringIndex = stringIndex==0 ? 0 : stringIndex
unEncodingString += encodingString.substr(stringIndex, encodingString.length)
state = 0
}
break
 
case (STATE_READLEN) :
encodingLength = encodingString.substr(scriptIndex, 6)
unEncodinglength = decodeBase64(encodingLength)
scriptIndex += (6 + "==".length)
state = STATE_DECODE
break
 
case (STATE_DECODE) :
if (!unEncodinglength)
{
stringIndex = scriptIndex + "DQgAAA==^#~@".length
unEncodingIndex = 0
state = STATE_COPY_INPUT
break
}
char = encodingString.substr(scriptIndex, 1)
if (char == "@") state = STATE_UNESCAPE
else
{
if (char.charCodeAt(0) < 0xFF)
{
unEncodingString += String.fromCharCode(transformed[pick_encoding[unEncodingIndex%64]][char.charCodeAt(0)])
unEncodingIndex++
}
else
{
unEncodingString += char
}
scriptIndex++
unEncodinglength--
break
}
 
case STATE_UNESCAPE:
unEncodingString += unescape(encodingString.substr(++scriptIndex, 1))
scriptIndex++; unEncodinglength -=2
unEncodingIndex++
state = STATE_DECODE
break
}
}
 
re = new RegExp("(JScript|VBscript).encode", "gmi")
while(arr = re.exec(unEncodingString)) unEncodingString = RegExp.leftContext + RegExp.$1 + RegExp.rightContext
return unEncodingString
}
 
//-->
<
/script>

上面代码的使用方法如下:
1、建一个.htm的文件,加入上面的代码。
2、再后面写上:

<form name="form">
<TEXTAREA NAME="code" ROWS="20" COLS="40" onfocus=this.select()>在这里写入你要加密或解密的内容。</TEXTAREA><BR>
<INPUT TYPE="button" value="/JScript.encode加密" onclick="this.form.code.value="/screncode(this.form.code.value,"'JS')">
<INPUT TYPE="button" value="/JScript.encode解密" onclick="this.form.code.value="/strdec(this.form.code.value)"">
</form>

3、保存该文件,用浏览器打开就可以进行加密和解密了。

下面有一个我做好的在线可以直接使用的页面,大家可以直接访问进行加密解密:
http://www.toplee.com/blog/wp-content/pages/jsencode.html

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
8 Responses
  1. Pingback: Anonymous
  2. ngs says:

    不能加密

  3. hxp says:

    这段代码不能解全,请问有什么更好的办法呢?

  4. hxp says:

    #@~^SQUAAA==@#@&P~,P,Pq6PgGYvkd1!:n.bm`Mn;!+/DcEmm//GDOmbNE#*bP:tnU@#@&P~~,P~IdaWUk+cDbY~J@!w@*@!aPCsbox{^+Y+M@*´íÎó²Ù×÷£¡@!za@*r@#@&P~~,P~IdwKxdnc2x[@#@&P~P,~,2U9P&0@#@&P,2lT+xD;;nkYR$;+MX/D.rxT`rwConE*@#@&P,r0,wCL’JE~Dtnx,2mon{F@#@&P,k6~xKYckkx;hDk1cwmo+*b~Y4+ P2lLn{F@#@&,~k6P2CT+@!q~Dtnx,2mon{F@#@&P,wmL+{kUYvwCL#@#@&~Pk+Y,.d’k+M\nD ^M+CYG4N+^OvJl[G94 D^KD[k+DJ#@#@&,~k6P.+$EndD`J1C//WMOmk9J*’EJ~O4+U@#@&~Pk;sxr/+sn1Y~e,WMWh,\x/4Wammm/nPKD[nMP4H~mm/+|r[PG2UZE@#@&~,+s/@#@&,P-n /tG2|mC/dKDO{k Y`M+$;+kYcJ1ldnkWDDmk9J#*@#@&P,/$VxJdn^+^Y,MP6DGh,\+Ud4W2{1Ck+~StD+,\U/4W2{1ldnkWDDxJL\+ d4Wa{1ld+dGMY’J,GD9+.~(XP^Ck+mk9~G2j;J@#@&P,+ [Pb0@#@&,P.dcWwUPk;VB^Gx ~2~f@#@&~,kWPMdRWW~Dt+U@#@&P~P,~,DnkwKx/RS.kD+~JÔÝÇÒûÓа¸Àýr@#@&~,PP,~D/wKUd+c+ N@#@&~~Vd+@#@&P,P~~,D/ 2mon/b”’+Z@#@&PP,P,~YKYCVM+^xM/RMnmKDN1G;xD@#@&P~P~~,YGYmswmonxM/R2CT+^W!UD@#@&,P,PP,k6~wmon@*DWOC^wlTnPDt+ ~2lT+{YGYCsalL+@#@&P,P~~,D/ C(/GV!OwCT+{wlT+@#@&P,P~P,kxT@#@&P,~P,PNK~AtbVPUWO~M/ +KWPmx[~vk@!.dcwCodbyn*@#@&PP,P,~k{kQF@#@&~~,PP,.+9k:,2.+k+M\nP^Ck+mk9ck*~-n /tG2|mC/Um:nvk*~\xk4Wa{^lk+[CD+`bb~7+xk4Gw|mm/nmGUD+UYvr#@#@&~~,PP~-xdtK2|mCk+ l:`bb’M/cJ7+Ud4Ww|^lk+xmhnJ*@#@&P~P~~,mC/mk9`rb{D/cE1ld+|r9Jb@#@&,PP,P,-+ /4Wa{^Ck+NmO+vk#{.d`r\xdtG2|mC/[lD+Eb@#@&P~~,P~\UktGa{1l/mKUYxO`b#x.k`J7nxktWam^lk+1WUYnUDJb@#@&~P,P~~M/RhG7+U+XO@#@&~,P,PP^WK2@#@&P~+ N~r6@#@&,~DkRm^Gd+@#@&,PEYsBAA==^#~@

    这段代码怎么解不全呢?

  5. huangfeifeu says:

    为什么只能解密,不能加密呢?这段程序代码有问题吗?

  6. Michael says:

    好像跟你浏览器或者系统上是否有一个控件有关系,具体的我也得研究研究:(

  7. kinghtonline says:

    我也是这觉得有点问题,有谁知道帮帮我,谢谢!

  8. 太复杂了,呵呵!

  9. minecraft says:

    Excellent post. Keep posting such kind of information on your page.
    Im really impressed by it.
    Hello there, You have done an incredible job.

    I’ll definitely digg it and in my view recommend to my friends.
    I’m sure they’ll be benefited from this website.

  10. Great post.

  11. WOW just what I was looking for. Came here by searching
    for minecraft free download 2018

  12. You really make it seem so easy with your presentation but I find this topic to be really
    something that I think I would never understand. It seems too
    complex and very broad for me. I am looking forward for your
    next post, I will try to get the hang of it!

  13. My spouse and I absolutely love your blog and find almost all of your post’s
    to be just what I’m looking for. Would you offer guest writers to write content for you personally?
    I wouldn’t mind publishing a post or elaborating on some of
    the subjects you write with regards to here. Again, awesome
    web log!

  14. I relish, result in I found just what I was looking for.
    You have ended my 4 day lengthy hunt! God Bless you man. Have a great day.
    Bye

  15. It’s appropriate time to make some plans for the future and it is time
    to be happy. I have learn this submit and if I may I want to counsel you some attention-grabbing things or
    tips. Maybe you can write next articles regarding this article.
    I wish to learn even more issues approximately it!

  16. I know this if off topic but I’m looking into starting my own blog
    and was wondering what all is needed to get set up? I’m assuming
    having a blog like yours would cost a pretty penny?
    I’m not very web smart so I’m not 100% positive. Any recommendations or advice would be greatly appreciated.
    Appreciate it

  17. Sling TV says:

    Ahaa, its nice conversation about this paragraph here at this web site, I have read all that, so now me also commenting at this place.

  18. Pingback: 2019
  19. Sling TV says:

    If you are going for finest contents like I do, only go to see this site all the time since it
    presents feature contents, thanks

  20. This is a topic which is near to my heart… Thank you!
    Where are your contact details though?

  21. Good way of telling, and fastidious piece of writing to obtain facts concerning my presentation subject,
    which i am going to present in school.

  22. Hi there! I know this is kind of off-topic but I had to ask.
    Does managing a well-established website such as yours take a
    massive amount work? I’m brand new to running a blog but I do write in my diary on a daily basis.

    I’d like to start a blog so I will be able to share my own experience and thoughts online.
    Please let me know if you have any suggestions or tips for
    brand new aspiring blog owners. Thankyou!

  23. Pingback: a2019-2020
  24. Pingback: facebook
  25. Pingback: facebook1
  26. Pingback: javsearch.mobi
  27. We’re a gaggle of volunteers and opening a new scheme in our
    community. Your website offered us with useful info to work on. You’ve performed an impressive task
    and our entire group will likely be thankful to you.

  28. Sports Betting Strategies – How to Start
    Sports Betting Successfully

    Betting on sports is recognized as one of the
    more interesting methods to gamble. Where else can be carried out that you can view your favorite
    sport this will let you opportunity to win some funds? Furthermore, the sense you will get whenever your favorite team wins is immeasurable in case you put your dollars in it.
    But much like other designs of gambling, you want a strategy to make your
    sports bet win, here are some guidelines to help you along.

    Before you even produce a bet, you at the very least have
    to find out the ins and outs about betting on your own favorite sport; what are probability of the teams, any kind of injuries you must know about,
    the morale of the team, what option is you betting in, etc.

    Information is a handy tool inside the smart bettor’s arsenal.
    Try getting betting tips off their successful bettors; this
    will be significant in case you’re new to the sport.
    And another thing that’s vitally important in sport betting is usually to know when you disappear
    have got won enough; learn how to gamble moderately.
    Knowing when you ought to quit when you are ahead is really a valuable quality which a good gambler has to have, as with that song by Kenny Rogers.

    Now whether you climb in to the winner’s circle or go to the losing end, all this is determined
    by what sort of strategy you’re going with and ways in which lucky you’re.
    So be than just a spectator and start placing your bets!

    Sport betting tips—> http://sports-betting.ml/

  29. It’s wonderful that you are getting thoughts from this post as
    well as from our dialogue made at this place.

  30. Asking questions are truly fastidious thing if you are not understanding something totally, however this post gives fastidious understanding yet.

  31. Woah! I’m really loving the template/theme of this site.
    It’s simple, yet effective. A lot of times it’s tough to get
    that “perfect balance” between usability and visual appeal.

    I must say you have done a great job with this.
    In addition, the blog loads extremely fast for me on Chrome.
    Superb Blog!

  32. What’s up to all, how is all, I think every one is getting more from this
    site, and your views are pleasant in support of new people.

  33. tinyurl.com says:

    whoah this weblog is excellent i love reading your
    articles. Keep up the good work! You recognize, a lot of people are searching around for this info, you could help them greatly.

  34. tinyurl.com says:

    I got this web page from my friend who told me about this site
    and now this time I am browsing this website and reading very informative posts at this
    place.

  35. minecraft says:

    Simply desire to say your article is as astounding.
    The clearness in your post is just cool and i could assume you are
    an expert on this subject. Fine with your permission allow me to grab your feed to keep updated with forthcoming post.
    Thanks a million and please continue the gratifying work.

  36. tinyurl.com says:

    Hey! I could have sworn I’ve been to this website before but after checking
    through some of the post I realized it’s new to me. Nonetheless, I’m definitely happy I found it and I’ll
    be bookmarking and checking back often!

  37. minecraft says:

    After looking over a handful of the blog articles on your site, I
    honestly like your technique of writing a blog.
    I saved it to my bookmark webpage list and will be checking back in the near future.

    Please visit my web site too and tell me how you feel.

  38. minecraft says:

    Your means of explaining all in this paragraph is genuinely fastidious, all be
    capable of effortlessly understand it, Thanks a lot.

  39. minecraft says:

    I don’t know if it’s just me or if everybody else encountering problems with
    your website. It appears as if some of the written text within your content are running off
    the screen. Can someone else please comment and
    let me know if this is happening to them as well?
    This may be a problem with my internet browser because I’ve had this
    happen previously. Cheers

  40. tinyurl.com says:

    Thanks very nice blog!

  41. minecraft says:

    Excellent weblog right here! Also your site so much up very fast!
    What host are you using? Can I am getting your affiliate
    hyperlink to your host? I wish my website loaded up as quickly as yours lol

  42. I will immediately grasp your rss feed as I can not in finding your email subscription link or e-newsletter service.
    Do you’ve any? Please permit me recognise in order that I could subscribe.

    Thanks.

  43. minecraft says:

    Fine way of describing, and pleasant article to take information on the topic of
    my presentation subject matter, which i am going to deliver in institution of higher education.

  44. Hello it’s me, I am also visiting this website regularly,
    this web page is in fact nice and the users are actually
    sharing fastidious thoughts.

  45. gamefly says:

    What’s up everyone, it’s my first pay a quick visit at this site, and
    post is actually fruitful in favor of me, keep up posting these
    articles.

  46. I visited various websites but the audio quality for audio songs present at
    this website is genuinely fabulous.

  47. I was recommended this website by my cousin. I’m not sure
    whether this post is written by him as nobody else know such detailed about my
    problem. You are incredible! Thanks!

  48. g says:

    Why visitors still make use of to read news papers when in this technological globe all is available on web?

  49. g says:

    I am now not certain where you are getting your info, however good topic.
    I needs to spend a while studying much more or working out more.
    Thank you for magnificent information I used to
    be in search of this information for my mission.

  50. Awesome blog! Is your theme custom made or did you download it from
    somewhere? A theme like yours with a few simple adjustements would really make
    my blog shine. Please let me know where you got your design. Many thanks

  51. My programmer is trying to persuade me to move to .net
    from PHP. I have always disliked the idea because of the expenses.
    But he’s tryiong none the less. I’ve been using WordPress on a variety of websites for about a year
    and am concerned about switching to another platform.

    I have heard great things about blogengine.net. Is there a way I can import all my
    wordpress content into it? Any help would
    be really appreciated!

Leave a Reply

Your email address will not be published. Required fields are marked *

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image