導航:首頁 > 編程語言 > 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方法相關的資料

熱點內容
install4j教程jre 瀏覽:579
excel的文件類型修改後打不開 瀏覽:844
文件描述符泄露 瀏覽:559
影棚燈光人像攝影教程 瀏覽:339
linux主機文件系統使用率 瀏覽:930
網路有個感嘆號不能用怎麼回事 瀏覽:739
面向應用的網路編程是什麼 瀏覽:385
工程機械網站模板 瀏覽:874
微信表情手掌什麼意思 瀏覽:987
word文件在電腦里打開是空白的 瀏覽:468
數據規約做了哪些事情 瀏覽:420
採集地理數據需要注意哪些 瀏覽:75
vivo的主題在哪個文件 瀏覽:492
少兒編程學的有什麼用 瀏覽:42
linuxatd服務卡住 瀏覽:141
去掉手機屏幕文件夾 瀏覽:6
什麼是outlook配置文件 瀏覽:457
微信注銷設賬號密碼 瀏覽:728
網上國網app如何確認接入系統方案 瀏覽:98
其中的文件夾 瀏覽:474

友情鏈接