導航:首頁 > 文檔加密 > js常用加密方式

js常用加密方式

發布時間:2023-04-04 00:50:52

⑴ Nodejs 使用node-rsa 加密數據

RSA演算法原理 阮一峰

1、在node.js中使用rsa演算法。首先需要是使用node-rsa包

2、實現加密/解密

客戶端需要使用一個jsencrypt.min.js 包利用公鑰對數據進行加密

以上運行時可以會出現如下錯誤

出現如上錯誤的時候,是服務端的加密方法和jsencrypt的加密方式不一致導致的。jsencrypt加密方式是pkcs1,node-rsa 默認的加密方式是pkcs1_oaep。解決辦法如下:

⑵ js有幾種加密方式

首先,MD5不是加密演算法,是簽名演算法,哎,到底是有多少國人被毒害了呀。

另外,只要是可以由軟體實現的加密演算法,js都能使用,只是有效率問題,
一般的
非對稱演算法,使用的資源都很龐大,所以js很少有。
而對稱的加密演算法……,由於js是對用戶可見的,所以……就和沒加密一樣。

這也就是為什麼真正的高安全網站都不會選擇用js做加密,而是選擇用https 協議這樣的手段。

再次重申,MD5不是加密演算法,所以不再上述范圍內

⑶ 功能強大的JS加密庫-CryptoJS

CryptoJS是javaScript的一個加解密庫集合,可以說平時開發磨肆中需要用到的加解密方法,它這里都包含了

1、MD5加密,這是一種不可逆的加密

2、SHA-1加密,是現有 SHA 哈希函數中最成熟的,它用於各種安全應用程序和協議

3、SHA-2加密,不像 SHA-1 那樣廣泛使用,盡管它似乎提供了更好的安全性

4、AES加解密瞎衫轎, 是美國聯邦信息處理標准 (FIPS)提出的高級加密標准

5、DES加解密, DES 是以前佔主導地位的加密演算法,並作為官方聯邦信息處理標准 (FIPS) 發布,由於密鑰大小較小,DES 現在被認塌孫為是不安全的

6、轉Base64

好了常用的加解密方法就介紹到這了

覺得效果不錯的請幫忙加個關注點個贊,經常分享前端實用開發技巧

⑷ 前端js 加密解密方式

一、base64加密
使用JS函數的window.btoa()和 window.atob(),分別是中臘編碼和解碼

二、編碼和解碼字元串

使用JS函巧羨數賣寬滑的escape()和unescape(),分別是編碼和解碼

三、AES加密解密
四、RSA加密解密

⑸ 求助前端JS都是用什麼加密的

js的不可雀冊讀化處理分為三個方面:壓縮(compression)、混鉛歲笑淆(obfuscation) 和加密(encryption)。
1. 壓縮
這一操作的目的,是讓最終代碼傳輸量 (不代表代碼量, 也不代表文件體積)盡可能小。壓縮js的工具,常見的有:YUI Compressor、UglifyJS、Google Closure Compiler 等。

通常在代碼壓縮的過程中,只改變代碼的語法,代碼的語義和控制流不會有太大改變。

常見做法是把局部變數縮短化,把一些運算進行等價替換等。代碼壓縮對於代碼保護有一些幫助,但由於語義和控制流基本沒變,起不了太大作用。

在壓縮層面上,代碼不可讀只是一種附帶傷害,不是最終目的。

2. 混淆

這一操作的目的,是讓代碼盡可能地不可讀,主要用作代碼保護。

讓代碼不可讀,增加分析的難度,這是唯一目的。混淆過後文件體積變大一倍也沒關系,代碼量變多也沒關系,運算慢50% 也沒關系。

常見的做法有:分離常量、打亂控制流、增加無義代碼、檢查運行環境槐含如果不對就罷工,等等。

在混淆層面上,代碼不可讀是最終目的。

值得一提的是,Google Closure Compiler 的 Advance Level Compression 會壓縮類和對象的成員,其壓縮結果很難分析,也可以認為是一種混淆,但兼容性不太好。

3. 加密

有加密就有解密,意味著加密操作可逆,密文可以明文化。

在Web界,可以稱之為加密的東西包括:HTTPS傳輸、JavaScript實現對稱加密或者不對稱加密等等。

⑹ 記錄一下前端使用CryptoJS的幾種加密方式

自己太小白了,之前在PC端項目中使用的MD5加密,現在的小程序項目使用了 CryptoJS 裡面的 enc-base64 和 hmac-sha1 ,之前沒有用到過這兩種,所以比較疑惑,為何在小程序不繼續使用 MD5 呢?所以在這里記錄一下自己解疑惑的一些知識點。

隨著互聯網的興起,我們對信息的安全越來越受重視,這樣就導致在web開發中,對用戶密碼等各種加密變得更加重要了。與伺服器的交互中,為了確保數據傳輸的安全性,避免被黑客抓包篡改。

對於Base64編碼的,我覺得看一篇文章能夠解決你的疑惑,我在這里就不贅述了
🧐 Base64編碼原理

如: 用戶密碼,請求參數,文件加密

如: 介面參數簽名驗證服務

支付數據、CA數字證書

前端的朋友可能會關注前端js加密,我們在做 WEB 的登錄功能時一般是通過 Form 提交或 Ajax 方式提交到伺服器進行驗證的。為了防止抓包,登錄密碼肯定要先進行一次加密(RSA),再提交到伺服器進行驗證。一些大公司都在使用,比如淘寶、京東、新浪 等。

前端加密也有很多現成的js庫,如:

JS-RSA: 用於執行OpenSSL RSA加密、解密和密鑰生成的Javascript庫, https://github.com/travist/jsencrypt

MD5: 單向散列加密md5 js庫, https://github.com/blueimp/JavaScript-MD5

crypto-js: 對稱加密AES js庫, https://github.com/brix/crypto-js

-CryptoJS (crypto.js) 為 JavaScript 提供了各種各樣的加密演算法。

HMAC 系列是消息驗證,用於驗證一個消息是否被篡改——如網站上傳遞 email 和 hmac(email),則接收時可以通過 hmac(email) 獲知 email 是否是用戶偽造的

⑺ 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>

就會彈出對話框告訴你解密後的結果!

⑻ 前端jsp登錄密碼加密為des3加密方法

*_*?我是誰
原創
關注
0點贊·757人閱讀
<%@ page contentType="text/html;charset=GBK"%>
<%@ page language="java" import="java.util.regex.*,
com.excellence.common.OAConstant,
com.excellence.common.UserInfo,
java.util.*,
java.text.SimpleDateFormat," %>
<html>
<head>
<title>XX系統</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="/common/styles/default/default.css" type="text/css">
</head>
<script language="javascript">
</script>
<script language="JavaScript" src="/oa/javascripts/crypto-js.js"></script>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
<center>

</center>
</body>
<script type="text/vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function

Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
<script>
<%
UserInfo userInfo = (UserInfo) request.getSession().getAttribute("userInfo ");
String account="";
//獲取用戶賬號
if(userInfo.getAccount()!=null&&!"".equals(userInfo.getAccount()))
account=userInfo.getAccount();

//有效期:格式:yyyy-MM-dd HH:mm:ss 有效期不能設置超過10分鍾
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
Date date = new Date(now .getTime() + 600000);
String time = df.format(date);
%>

//sessionid = base64(DES(用戶賬號&有效鋒拿期))
//DES key:67HT4WrP
var sessionId = "<%=account%>" + "&" + "<%=time%>";
var mykey = "67HT4WrP";

// DES加密模式:CBC模式/銀返搭ECB模式
// CBC模式加密
function encryptCBC(text, textKey) {
// 密鑰轉成16進制的字元串
var key = CryptoJS.enc.Utf8.parse(textKey);
// 加密過程
var encrypted = CryptoJS.DES.encrypt(text, key, {
// iv偏移量為key值
iv: key,
// 模式為CBC
mode: CryptoJS.mode.CBC,
// DES加密padding為Pkcs7
padding: CryptoJS.pad.Pkcs7
});
// 加密返回為字元串密文世念(加密經過一次base64加密,結果可看結果)
return encrypted.toString();
}

//對字元串中的特殊字元進行UrlEncode轉碼
function UrlEncode(str){
var ret="";
var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
var tt= "";

for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
var c=str2asc(chr);
tt += chr+":"+c+"n";
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}

//對sessionid進行加密
var desPass=encryptCBC(sessionId,mykey);

//對加密的sessionid中的特殊字元轉碼
var desPassEncode=UrlEncode(desPass);

//URL格式:http://xxxxxxxxxxxx?sessionid=&appid=&redirectUrl=~/Portals/Views/Test/index.html
var url="http://xxxxxxxxxxxx?sessionid="+desPassEncode+"&appid=&redirectUrl=~/Portals/Views/Test/index.html";

window.close();
window.open(url);

</script>
</html>
登錄後復制

注意事項:
1、crypto-js.js使用到了這個js,要記得引入,很多地方可以下載的,除了這裡面能用到des加密,也可以從網上找其他的des加密腳本,但是因為des加密模式的問題,要注意調用函數時參數的使用,確定自己要使用的是哪種des加密方法。
2、因為這里實現的是自動登錄,涉及到了url的處理,由於使用了加密,密文中會含有特殊字元,直接通過url轉跳,要把url中含有的特殊字元進行UrlEncode轉碼。
3、注意這里des的加密方式,這樣進行轉跳,跳進去的網站是.net實現的,因為des的加密模式有幾種,java,.net等默認的des加密模式有可能不一致,就會導致加密後的密文不一樣,所以要確定自己使用哪種模式,或者直接輸出加密密文來進行比較。
4、使用js比較方便的地方是因為我這里用的jsp頁面,所以對處理的數據可以任意寫,而且不會影響後台的使用,我覺得這是js的好處,特別是進行像這種進行類似單點登錄,自己系統用的java實現,而別人用的.net,直接用腳本,可以節省時間,不會對自己系統造成什麼影響。
5、有一個地方要注意,這里對url進行轉碼時,使用到了VB腳本的一些函數,這種腳本已經很少有人會用了,而且有些瀏覽器已經不支持了,網路顯示ie11不支持,但是我自己的電腦就是ie11,可以使用,所以這個也不是絕對的,有可能和使用到的函數有關。
6、除了des加密,還有md5,單獨的base64加密,這些常用的加密方式,都可以直接用js腳本實現。
7、這里只有des的一種加密模式,還有其他的,crypto-js.js中都有,可以網路下其他加密方法的使用!

⑼ 到目前為止,有沒有把 js 完全加密的方法

其實可以仿照vmprotect寫一個js版本的,vmprotect思想來源於門電路 。
原理是,把加減乘除都用nor指令實現,nor = not not and
於是原來很容易看出邏輯的 and xor not or 都加密成了整齊劃一的單一操作字元nor
再從nor還原回去變的極為困難 。
目前為止vmp虛擬機加密只能半自動甚至手工還原,還原vmp至今是仍然有很大難度(爆破是另一回事) 。
javascript也可以這么做,也就是在js虛擬機上再搞vmp虛擬機 。
但是似乎js界和搞加密解密的交集太少,沒有人去做這個事情 。
也可能是js並沒有那麼高的價值值得如此保護。

⑽ 介紹一點js加密的方法

一:最簡單的加密解密
大家對於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("\141\154\145\162\164\50\42\u9ED1\u5BA2\u9632\u7EBF\42\51\73")
</SCRIPT>
十六進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")
</SCRIPT>
這次沒有了解碼函數,因為JavaScript執行時會自行轉換,同樣解碼也是很簡單如下:
<SCRIPT LANGUAGE="JavaScript">
alert("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")
</SCRIPT>
就會彈出對話框告訴你解密後的結果!

閱讀全文

與js常用加密方式相關的資料

熱點內容
演算法與程序的奧秘章節檢測 瀏覽:377
找pdf 瀏覽:525
與伺服器連接斷開如何處理 瀏覽:831
伺服器維修預計十分鍾什麼意思 瀏覽:168
黑馬程序員主打教學是什麼 瀏覽:39
python九乘法表怎麼編寫 瀏覽:972
思維方式pdf 瀏覽:654
tcc社區app怎麼注冊 瀏覽:937
央視網下載加密 瀏覽:452
命令行訪問伺服器 瀏覽:36
梁加密區箍筋是不是必須封閉箍筋 瀏覽:760
在百度地圖如何定位伺服器地址 瀏覽:570
單片機計數器中斷 瀏覽:296
哈啰安裝文件夾名稱 瀏覽:294
解壓視頻聲控用杯子玩泡沫 瀏覽:740
19年的普通安卓機怎麼樣了 瀏覽:604
如何在app上刷導游題目 瀏覽:861
子彈解壓視頻大全 瀏覽:323
鴻蒙加密等級 瀏覽:806
cocos2dluapdf 瀏覽:493