最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js加密解密字符串可自定義密碼因子

 更新時間:2014年05月13日 17:22:22   作者:  
這篇文章主要為大家演示下js加密解密字符串可以自定義密碼因子,需要的朋友可以參考下
復制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>字符串加密</title>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function encrypt(str, pwd) {
if(pwd == null || pwd.length <= 0) {
alert("Please enter a password with which to encrypt the message.");
return null;
}
var prand = "";
for(var i=0; i<pwd.length; i++) {
prand += pwd.charCodeAt(i).toString();
}
var sPos = Math.floor(prand.length / 5);
var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos*2) + prand.charAt(sPos*3) + prand.charAt(sPos*4) + prand.charAt(sPos*5));
var incr = Math.ceil(pwd.length / 2);
var modu = Math.pow(2, 31) - 1;
if(mult < 2) {
alert("Algorithm cannot find a suitable hash. Please choose a different password. \nPossible considerations are to choose a more complex or longer password.");
return null;
}
var salt = Math.round(Math.random() * 1000000000) % 100000000;
prand += salt;
while(prand.length > 10) {
prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();
}
prand = (mult * prand + incr) % modu;
var enc_chr = "";
var enc_str = "";
for(var i=0; i<str.length; i++) {
enc_chr = parseInt(str.charCodeAt(i) ^ Math.floor((prand / modu) * 255));
if(enc_chr < 16) {
enc_str += "0" + enc_chr.toString(16);
} else enc_str += enc_chr.toString(16);
prand = (mult * prand + incr) % modu;
}
salt = salt.toString(16);
while(salt.length < 8)salt = "0" + salt;
enc_str += salt;
return enc_str;
}

function decrypt(str, pwd) {
if(str == null || str.length < 8) {
alert("A salt value could not be extracted from the encrypted message because it's length is too short. The message cannot be decrypted.");
return;
}
if(pwd == null || pwd.length <= 0) {
alert("Please enter a password with which to decrypt the message.");
return;
}
var prand = "";
for(var i=0; i<pwd.length; i++) {
prand += pwd.charCodeAt(i).toString();
}
var sPos = Math.floor(prand.length / 5);
var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos*2) + prand.charAt(sPos*3) + prand.charAt(sPos*4) + prand.charAt(sPos*5));
var incr = Math.round(pwd.length / 2);
var modu = Math.pow(2, 31) - 1;
var salt = parseInt(str.substring(str.length - 8, str.length), 16);
str = str.substring(0, str.length - 8);
prand += salt;
while(prand.length > 10) {
prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();
}
prand = (mult * prand + incr) % modu;
var enc_chr = "";
var enc_str = "";
for(var i=0; i<str.length; i+=2) {
enc_chr = parseInt(parseInt(str.substring(i, i+2), 16) ^ Math.floor((prand / modu) * 255));
enc_str += String.fromCharCode(enc_chr);
prand = (mult * prand + incr) % modu;
}
return enc_str;
}
// End -->
</script>
<form name="box"><center>
<table cellpadding=0 cellspacing=0 border=0><tr><td colspan=3>
<textarea cols=40 rows=5 wrap=virtual name=ipt>Welcome to baidu.com</textarea>
</td></tr>
<tr height=50><td valign="top">
<input type="button" onclick="document.box.opt.value= encrypt(document.box.ipt.value, document.box.pwd.value);" value="加密">
</td><td align="center" valign="center">
<input type="text" name="pwd" value="password">
</td><td align="right" valign="bottom">
<input type="button" onclick="document.box.ipt.value= decrypt(document.box.opt.value, document.box.pwd.value);" value="解密">
</td></tr>
<tr><td colspan=3>
<textarea cols=40 rows=5 wrap=virtual name=opt></textarea>
</td></tr></table>
</center>
</form>
</body>

</html>

代碼copy之后直接打開即可

相關(guān)文章

  • 原生js實現(xiàn)放大鏡組件

    原生js實現(xiàn)放大鏡組件

    這篇文章主要為大家詳細介紹了js實現(xiàn)放大鏡組件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 通過js將26個英文字母按順序依次排列方式

    通過js將26個英文字母按順序依次排列方式

    這篇文章主要介紹了通過js將26個英文字母按順序依次排列方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 純JavaScript實現(xiàn)的分頁插件實例

    純JavaScript實現(xiàn)的分頁插件實例

    這篇文章主要介紹了純JavaScript實現(xiàn)的分頁插件,涉及javascript結(jié)合php動態(tài)實現(xiàn)分頁效果的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • js動態(tài)獲取子復選項并設計全選及提交的實現(xiàn)方法

    js動態(tài)獲取子復選項并設計全選及提交的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨s動態(tài)獲取子復選項并設計全選及提交的實現(xiàn)方法。小編覺得挺不錯的, 現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 純JS實現(xiàn)可用于頁碼更換的飛頁特效示例

    純JS實現(xiàn)可用于頁碼更換的飛頁特效示例

    這篇文章主要介紹了純JS實現(xiàn)可用于頁碼更換的飛頁特效,涉及javascript結(jié)合時間函數(shù)的數(shù)學運算與頁面元素屬性動態(tài)修改相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • JavaScript實現(xiàn)簡單圖片滾動附源碼下載

    JavaScript實現(xiàn)簡單圖片滾動附源碼下載

    JavaScript實現(xiàn)簡單圖片滾動,9張圖告訴你,C羅欲哭無淚,另附源碼下載,方便學習
    2014-06-06
  • JS逆向之瀏覽器補環(huán)境圖文詳解

    JS逆向之瀏覽器補環(huán)境圖文詳解

    平時JavaScript逆向需要補環(huán)境或者補一些函數(shù),下面這篇文章主要給大家介紹了關(guān)于JS逆向之瀏覽器補環(huán)境的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • ES6中字符串string常用的新增方法小結(jié)

    ES6中字符串string常用的新增方法小結(jié)

    這篇文章主要介紹了ES6中字符串string常用的新增方法,結(jié)合實例形式總結(jié)分析了ES6中字符串string常用的新增方法功能與使用技巧,需要的朋友可以參考下
    2017-11-11
  • 原生JS實現(xiàn)音樂播放器

    原生JS實現(xiàn)音樂播放器

    這篇文章主要為大家詳細介紹了原生JS音樂播放器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 獲取陰歷(農(nóng)歷)和當前日期的js代碼

    獲取陰歷(農(nóng)歷)和當前日期的js代碼

    這篇文章主要為大家詳細介紹了獲取陰歷(農(nóng)歷)日期的js代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02

最新評論

丽江市| 蕉岭县| 南部县| 葵青区| 邛崃市| 高雄县| 二连浩特市| 聂荣县| 红河县| 千阳县| 会宁县| 海兴县| 石林| 龙泉市| 新野县| 丰城市| 德安县| 萍乡市| 宁波市| 启东市| 清徐县| 外汇| 麻栗坡县| 云南省| 清远市| 滁州市| 兴安盟| 怀化市| 科技| 临沭县| 称多县| 蓝山县| 山丹县| 沭阳县| 正宁县| 莱芜市| 股票| 象山县| 商水县| 沧源| 垣曲县|