JS實(shí)現(xiàn)的RC4加密算法示例
本文實(shí)例講述了JS實(shí)現(xiàn)的RC4加密算法。分享給大家供大家參考,具體如下:
RC4是一種簡(jiǎn)單的對(duì)稱加密算法,在文本加密,通信加密等場(chǎng)景應(yīng)用非常廣泛。
在Web中可以用來(lái)對(duì)本地存儲(chǔ)數(shù)據(jù)進(jìn)行加密,比如存儲(chǔ)cookie中的用戶名和密碼,敏感信息等。
以下是本人根據(jù)其思想基于JS實(shí)現(xiàn)的算法。
//var ctext = rc4("我是明文","我是密碼");
//var text = rc4(ctext, "我是密碼");
function rc4(data, key) {
var seq = Array(256); //int
var das = Array(data.length); //code of data
for (var i = 0; i < 256; i++) {
seq[i] = i;
var j = (j + seq[i] + key.charCodeAt(i % key.length)) % 256;
var temp = seq[i];
seq[i] = seq[j];
seq[j] = temp;
}
for (var i = 0; i < data.length; i++) {
das[i] = data.charCodeAt(i)
}
for (var x = 0; x < das.length; x++) {
var i = (i + 1) % 256;
var j = (j + seq[i]) % 256;
var temp = seq[i];
seq[i] = seq[j];
seq[j] = temp;
var k = (seq[i] + (seq[j] % 256)) % 256;
das[x] = String.fromCharCode(das[x] ^ seq[k]);
}
return das.join('');
}
PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:
在線RC4加密/解密工具:
http://tools.jb51.net/password/rc4_encode
文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode
在線編碼轉(zhuǎn)換工具(utf-8/utf-32/Punycode/Base64):
http://tools.jb51.net/transcoding/decode_encode_tool
BASE64編碼解碼工具:
http://tools.jb51.net/transcoding/base64
在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript加密解密技巧匯總》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
Javascript面試經(jīng)典套路reduce函數(shù)查重
reduce函數(shù),是ECMAScript5規(guī)范中出現(xiàn)的數(shù)組方法.下面通過(guò)本文給大家分享Javascript面試經(jīng)典套路reduce函數(shù)查重,需要的朋友參考下吧2017-03-03
微信小程序語(yǔ)音同步智能識(shí)別的實(shí)現(xiàn)案例代碼解析
在一些小程序的開(kāi)發(fā)場(chǎng)景中經(jīng)常會(huì)有語(yǔ)音轉(zhuǎn)文字的需求,今天小編通過(guò)實(shí)際案例給大家分享微信小程序語(yǔ)音同步智能識(shí)別功能,需要的朋友可以參考下2020-05-05
詳細(xì)教你微信公眾號(hào)正文頁(yè)SVG交互開(kāi)發(fā)技巧
這篇文章主要介紹了詳細(xì)教你微信公眾號(hào)正文頁(yè)SVG交互開(kāi)發(fā)技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
js實(shí)現(xiàn)String.Fomat的實(shí)例代碼
下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)String.Fomat的實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
微信小程序在text文本實(shí)現(xiàn)多種字體樣式
這篇文章主要介紹了微信小程序在text文本實(shí)現(xiàn)多種字體樣式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
javascript計(jì)算對(duì)象長(zhǎng)度的方法
這篇文章主要為大家詳細(xì)介紹了javascript計(jì)算對(duì)象長(zhǎng)度的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
使用Object.defineProperty實(shí)現(xiàn)簡(jiǎn)單的js雙向綁定
這篇文章主要介紹了使用Object.defineProperty實(shí)現(xiàn)簡(jiǎn)單的js雙向綁定的相關(guān)資料,需要的朋友可以參考下2016-04-04

