导航:首页 > 编程语言 > jsencrypt方法

jsencrypt方法

发布时间:2021-11-06 07:33:58

㈠ 关于js加密,这个是什么加密方式如何进行加密和解密

7种加抄密方式:http://www.codesky.net/article/200911/165731.html

㈡ JS加密方法

本文一共介绍了七种方法:
一:最简单的加密解密
二:转义字符""的妙用
三:使用Microsoft出品的脚本编码器Script Encoder来进行编码 (自创简单解码)
四:任意添加NUL空字符(十六进制00H) (自创)
五:无用内容混乱以及换行空格TAB大法
六:自写解密函数法
七:错误的利用 (自创)

在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE运行的javaSCRIPT代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西也挺累的......^*^

但我们也应该清楚地认识到因为JAVASCRIPT代码是在IE中解释执行,要想绝对的保密是不可能的,我们要做的就是尽可能的增大拷贝者复制的难度,让他知难而退(但愿~!~),下面我结合自己这几年来的实践,及个人研究的心得,和大家一起来探讨一下网页中JAVASCRIPT代码的加密解密技术。

以加密下面的JAVASCRIPT代码为例:
<SCRIPT LANGUAGE="JavaScript">
alert("《黑客防线》");
</SCRIPT>

一:最简单的加密解密

大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点JAVASCRIPT代码重新把它加密如下:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

呵呵!如何?这次是完全都加密了!

当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>

是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵

二:转义字符""的妙用

大家可能对转义字符""不太熟悉,但对于JavaScript提供了一些特殊字符如:n (换行)、 r (回车)、' (单引号 )等应该是有所了解的吧?其实""后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"141"或"x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:

八进制转义字符串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>

十六进制转义字符串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>

这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:
<SCRIPT LANGUAGE="JavaScript">
alert("")
</SCRIPT>

就会弹出对话框告诉你解密后的结果!

㈢ jsencrypt 对应 vb.net 什么方法

不想用点击,直接执行,那么你肯定就不能用onclick事件了。在网页中JS函数自动执行常用三种方法在HTML中的Head区域中,有如下函数:下面,我们就针对上面的函数,让其在网页载入的时候自动运行!①第一种方法将如上代码改为:②第二种方法修改网页的Body为:或者改为:③第三种方法使用JS定时器来间断性的执行函数:setTimeout("MyAutoRun()",1000);//隔1000毫秒就执行一次MyAutoRun()函数实现方法,将最上面的那JS函数,改为:

㈣ JS加密不可靠,用post方法行吗

如果那段代码是用来处理数据可以用ajax来实现。

我简单举个例子比如这个函数

functioncount(a){
returna+=10;
}

参数 a 返回值+10,但是我们不想让别人知道函数内部是怎么处理的

我们可以把处理的过程移到后台,这里我后台用php举例 test1.php

<?php
$num=$_POST['num'];//取前台的参数值
$num+=10;//计算
echo$num;//返回
?>

然后在前端用ajax传参数到后台,得到计算的返回值,我这里用jquery的post

<scriptsrc="http://code.jquery.com/jquery-latest.js"></script>
<script>
window.onload=function(){
varnum=2;
alert(count(num));
$.post('test1.php',{num:num},function(s){
alert(s)
})
}
functioncount(a){
returna+=10;
}
</script>

运行这段代码,就可发现alert(count(num)); 与post回传的alert(s)值是一样的,但是用post别人是看不到 += 10这段后台处理过程的

原理就是这么简单

㈤ 求救,有见过这种变态的JS加密方法的朋友吗

解决方法如下:
unction native2ascii(nativecode) {

nativecode = nativecode.split("");
var ascii = "";
for (var i = 0; i < nativecode.length; i++) {
var code = Number(nativecode[i].charCodeAt(0));
if (code > 127) {
var charAscii = code.toString(16);
charAscii = new String("0000").substring(charAscii.length, 4) + charAscii;
ascii += "\\u" + charAscii;
} else {
ascii += nativecode[i];
}
}

㈥ 求与之php openssl_public_encrypt()相对应的js加密方法

  1. 为啥用js加密,传递给php再加密,不一样么,反正你的私钥和公钥都在服务器有;

  2. 不过关于这个加密的js版本库,你可以参考一下jsencrypt库或者Crypto-JS库,他们的计算方式需要你自己亲测,下面附带两个案例地址:

    jsencrypt库:http://www.cnblogs.com/syjkfind/p/4617492.html

    Crypto-JS库:http://m.blog.csdn.net/blog/momo_mutou/44240371

㈦ 怎么用 python 模拟 js 里 JSEncrypt 模块的加密方式

PC登录新浪微博时,在客户端用js预先对用户名、密码都进行了加密,而且在POST之前会GET一组参数,这也将作为POST_DATA的一部分。这样,就不能用通常的那种简单方法来模拟POST登录(比如人人网)。
通过爬虫获取新浪微博数据,模拟登录是必不可少的。
1、在提交POST请求之前,需要GET获取四个参数(servertime,nonce,pubkey和rsakv),不是之前提到的只是获取简单的servertime,nonce,这里主要是由于js对用户名、密码加密方式改变了。
1.1 由于加密方式的改变,我们这里将使用到RSA模块,有关RSA公钥加密算法的介绍可以参考网络中的有关内容。下载并安装rsa模块:
下载:https//pypi.python.org/pypi/rsa/3.1.1
rsa模块文档地址:http//stuvel.eu/files/python-rsa-doc/index.html
根据自己的Python版本选择适合自己的rsa安装包(.egg),在win下安装需要通过命令行使用easy_install.exe(win上安装setuptool从这里下载:setuptools-0.6c11.win32-py2.6.exe 安装文件 )进行安装,例如:easy_install rsa-3.1.1-py2.6.egg,最终命令行下测试import rsa,未报错则安装成功。
1.2 获得以及查看新浪微博登录js文件
查看新浪通行证url (http//login.sina.com.cn/signup/signin.php)的源代码,其中可以找到该js的地址 http//login.sina.com.cn/js/sso/ssologin.js,不过打开后里面的内容是加密过的,可以在网上找个在线解密站点解密,查看最终用户名和密码的加密方式。
1.3 登录
登录第一步,添加自己的用户名(username),请求prelogin_url链接地址:
prelogin_url = 'http//login.sina.com.cn/sso/prelogin.php?entry=sso&callback=sinaSSOController.preloginCallBack&su=%s&rsakt=mod&client=ssologin.js(v1.4.4)' % username
使用get方法得到以下类似内容:
sinaSSOController.preloginCallBack({"retcode":0,"servertime":1362041092,"pcid":"gz-","nonce":"IRYP4N","pubkey":"","rsakv":"1330428213","exectime":1})
进而从中提取到我们想要的servertime,nonce,pubkey和rsakv。当然,pubkey和rsakv的值我们可以写死在代码中,它们是固定值。
2、之前username 经过BASE64计算:
复制代码 代码如下:
username_ = urllib.quote(username)
username = base64.encodestring(username)[:-1]
password经过三次SHA1加密,且其中加入了 servertime 和 nonce 的值来干扰。即:两次SHA1加密后,结果加上servertime和nonce的值,再SHA1算一次。
在最新的rsa加密方法中,username还是以前一样的处理;
password加密方式和原来有所不同:
2.1 先创建一个rsa公钥,公钥的两个参数新浪微博都给了固定值,不过给的都是16进制的字符串,第一个是登录第一步中的pubkey,第二个是js加密文件中的‘10001'。
这两个值需要先从16进制转换成10进制,不过也可以写死在代码里。这里就把10001直接写死为65537。代码如下:
复制代码 代码如下:
rsaPublickey = int(pubkey, 16)
key = rsa.PublicKey(rsaPublickey, 65537) #创建公钥
message = str(servertime) + '\t' + str(nonce) + '\n' + str(password) #拼接明文js加密文件中得到
passwd = rsa.encrypt(message, key) #加密
passwd = binascii.b2a_hex(passwd) #将加密信息转换为16进制。
2.2 请求通行证url:login_url =‘http//login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.4)'
需要发送的报头信息
复制代码 代码如下:
postPara = {
'entry': 'weibo',
'gateway': '1',
'from': '',
'savestate': '7',
'userticket': '1',
'ssosimplelogin': '1',
'vsnf': '1',
'vsnval': '',
'su': encodedUserName,
'service': 'miniblog',
'servertime': serverTime,
'nonce': nonce,
'pwencode': 'rsa2',
'sp': encodedPassWord,
'encoding': 'UTF-8',
'prelt': '115',
'rsakv' : rsakv,
'url': 'http//weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',
'returntype': 'META'
}
请求的内容中添加了rsakv,将pwencode的值修改为rsa2,其他跟以前一致。
将参数组织好,POST请求。检验是否登录成功,可以参考POST后得到的内容中的一句 location.replace("http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&retcode=101&reason=%B5%C7%C2%BC%C3%FB%BB%F2%C3%DC%C2%EB%B4%ED%CE%F3");
如果retcode=101则表示登录失败。登录成功后结果与之类似,不过retcode的值是0。
3、登录成功后,在body中的replace信息中的url就是我们下一步要使用的url。然后对上面的url使用GET方法来向服务器发请求,保存这次请求的Cookie信息,就是我们需要的登录Cookie了。

㈧ jsencrypt加密java解密

很不抄幸,就以我的知识范围,袭纯粹的JS无法做到百分百的安全。理由如下:

㈨ JSENCRYPTSCRIPTDEMO是什么脚本加的密

还有需要可以找我,可解。

㈩ jsencrypt库进行rsa公钥加密怎么在后台解密

1、用公钥加密,用私钥解密。 2、给别人发信息,就从服务器上拉下来别人的公钥,加密后发给他。 3、对方拿到信息后用自己的私钥解密。 4、这样,公钥加密后除了私钥持有人,别人都看不到信息。

阅读全文

与jsencrypt方法相关的资料

热点内容
iphone4s改微信提示音 浏览:215
编程的大括号放在哪里 浏览:106
switch帐号改密码 浏览:750
PDF文件转caxa电子图版 浏览:65
win10更新uefi 浏览:537
wordpress建站需要哪些编程 浏览:299
信捷plc编程工具软件是干什么的 浏览:335
vs版本控制github 浏览:728
iphone有黑名单功能吗 浏览:896
install4j教程jre 浏览:579
excel的文件类型修改后打不开 浏览:844
文件描述符泄露 浏览:559
影棚灯光人像摄影教程 浏览:339
linux主机文件系统使用率 浏览:930
网络有个感叹号不能用怎么回事 浏览:739
面向应用的网络编程是什么 浏览:385
工程机械网站模板 浏览:874
微信表情手掌什么意思 浏览:987
word文件在电脑里打开是空白的 浏览:468
数据规约做了哪些事情 浏览:420

友情链接