Security Encode & Decode
Posted leisureeen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Security Encode & Decode相关的知识,希望对你有一定的参考价值。
加密的方法是由某管理系统的登录密码加密方法修改得到的,解密的方法是本人写的。
1 <html> 2 <head> 3 <title>Powered By Leisureeen</title> 4 </head> 5 <script language="javascript"> 6 function securityEncode(){ 7 var pwd = document.getElementById("txt").value; 8 var strDe = "RDpbLfCPsJZ7fiv"; 9 var dictionary = "yLwVl0zKqws7LgKPRQ84Mdt708T1qQ3Ha7xv3H7NyU84p21BriUWBU43odz3iP4rBL3cD02KZciX"+ 10 "TysVXiV8ngg6vL48rPJyAUw0HurW20xqxv9aYb4M9wK1Ae0wlro510qXeU07kV57fQMc8L6aLgML"+ 11 "wygtc0F10a0Dg70TOoouyFhdysuRMO51yY5ZlOZZLEal1h0t9YQW0Ko7oBwmCAHoic4HYbUyVeU3"+ 12 "sfQ1xtXcPcf1aT303wAQhv66qzW"; 13 var output = ""; 14 var lenMax, len1, len2, lenDict; 15 var cl = 0xBB, cr = 0xBB; 16 len1 = strDe.length; 17 len2 = pwd.length; 18 lenDict = dictionary.length; 19 lenMax = len1 > len2 ? len1 : len2; 20 for (var index = 0; index < lenMax; index++){ 21 cl = cr = 0xBB; 22 if(index < len1) 23 cl = strDe.charCodeAt(index); 24 if(index < len2) 25 cr = pwd.charCodeAt(index); 26 output += dictionary.charAt((cl ^ cr) % lenDict); 27 } 28 document.getElementById("out").value = output; 29 } 30 function decode(){ 31 var pwd = document.getElementById("txt").value; 32 var strDe = "RDpbLfCPsJZ7fiv"; 33 var dictionary = "yLwVl0zKqws7LgKPRQ84Mdt708T1qQ3Ha7xv3H7NyU84p21BriUWBU43odz3iP4rBL3cD02KZciX"+ 34 "TysVXiV8ngg6vL48rPJyAUw0HurW20xqxv9aYb4M9wK1Ae0wlro510qXeU07kV57fQMc8L6aLgML"+ 35 "wygtc0F10a0Dg70TOoouyFhdysuRMO51yY5ZlOZZLEal1h0t9YQW0Ko7oBwmCAHoic4HYbUyVeU3"+ 36 "sfQ1xtXcPcf1aT303wAQhv66qzWy";//append ‘y‘ 37 var output = ""; 38 if(pwd.length < 15) 39 alert("pwd.length must great than or equals to 15."); 40 else if(pwd.length == 15){ 41 for(var iChar = 0; iChar < 15; iChar++){ 42 var flag0xBB = false; 43 output += (iChar + 1) + ": "; 44 for(var iDic = 0; iDic <= 255; iDic++){ 45 if(dictionary.charCodeAt(iDic) == pwd.charCodeAt(iChar)){ 46 var keyChar = iDic ^ strDe.charCodeAt(iChar); 47 if(keyChar >= 32 && keyChar <= 126) 48 output += String.fromCharCode(keyChar); 49 else if(keyChar == 0xBB) 50 flag0xBB = true; 51 } 52 } 53 output += " "; 54 if(flag0xBB) 55 output += "Password may contains " + iChar + " char(s). "; 56 } 57 } 58 else{ 59 for(var iChar = 0; iChar < pwd.length; iChar++){ 60 output += (iChar + 1) + ": "; 61 for(var iDic = 0; iDic <= 255; iDic++){ 62 if(dictionary.charCodeAt(iDic) == pwd.charCodeAt(iChar)){ 63 var keyChar = iDic ^ (iChar >= 15 ? 0xBB : strDe.charCodeAt(iChar)); 64 if(keyChar >= 32 && keyChar <= 126) 65 output += String.fromCharCode(keyChar); 66 } 67 } 68 output += " "; 69 } 70 } 71 document.getElementById("out").value = output; 72 } 73 </script> 74 <body bgcolor="ABCDEF"> 75 <div align="center"> 76 <b><textarea id="txt" style="height:100;width:500;font-size:20px">123456789ABCDEF</textarea><br> 77 <input type="button" onclick="securityEncode()" value="Encode"> 78 <input type="button" onclick="decode()" value="Decode"><br> 79 <textarea id="out" style="height:400;width:500;font-size:20px"></textarea><br> 80 Designer:Leisureeen</b><br> 81 </div> 82 </body> 83 </html>
其中加密算法的测试结果如下:
Sample Input:
Leisureeen
Sample Output:
378QdM7Ut3efbwK
解密算法的测试结果如下:
Sample Input:
378QdM7Ut3efbwK
Sample Output:
1: Lvei 2: OSeb 3: biZ#+ 4: s 5: Yu 6: r 7: HTbe 8: ybe1 9: e 10: Tn}q 11: # Password may contains 10 char(s). 12: Password may contains 11 char(s). 13: Password may contains 12 char(s). 14: k` Password may contains 13 char(s). 15: qx1 Password may contains 14 char(s).
以上是关于Security Encode & Decode的主要内容,如果未能解决你的问题,请参考以下文章
bzoj1690:[Usaco2007 Dec]奶牛的旅行 (分数规划 && 二分 && spfa)
php json_encode & jquery parseJSON 单引号问题
bzoj1640[Usaco2007 Nov]Best Cow Line 队列变换*&&bzoj1692[Usaco2007 Dec]队列变换*