亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

關于加密解密 Base64 and URL and Hex Encoding and Decoding

2024-05-04 11:09:18
字體:
來源:轉載
供稿:網友
今天想換一下Discuz論壇的風格,誰知下載風格文件后,發現竟然是通過Base64加密過的 
小林給推薦了個解密的頁面,提取出代碼如下: 
復制代碼代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>Base64 and URL and Hex Encoding and Decoding</title> 
<meta name="description" content="Encodes or decodes data in Base64 or URL encoding using client side JavaScript" /> 
<meta name="keywords" content="base64, base 64, urlencode, urldecode, hexencode, hex encode, hexdecode hex decode, javascript base64, javascript base 64, javascript urlencode, javascript urldecode, javascript hexencode, javascript hexdecode" /> 
<link rel="shortcut icon" href="http://ostermiller.org/favicon.ico" type="image/x-icon" /> 
<script language=javascript type="text/javascript"> 
<!-- 
function urlDecode(str){ 
str=str.replace(new RegExp('//+','g'),' '); 
return unescape(str); 

function urlEncode(str){ 
str=escape(str); 
str=str.replace(new RegExp('//+','g'),'%2B'); 
return str.replace(new RegExp('%20','g'),'+'); 

var END_OF_INPUT = -1; 
var base64Chars = new Array( 
'A','B','C','D','E','F','G','H', 
'I','J','K','L','M','N','O','P', 
'Q','R','S','T','U','V','W','X', 
'Y','Z','a','b','c','d','e','f', 
'g','h','i','j','k','l','m','n', 
'o','p','q','r','s','t','u','v', 
'w','x','y','z','0','1','2','3', 
'4','5','6','7','8','9','+','/' 
); 
var reverseBase64Chars = new Array(); 
for (var i=0; i < base64Chars.length; i++){ 
reverseBase64Chars[base64Chars[i]] = i; 

var base64Str; 
var base64Count; 
function setBase64Str(str){ 
base64Str = str; 
base64Count = 0; 

function readBase64(){ 
if (!base64Str) return END_OF_INPUT; 
if (base64Count >= base64Str.length) return END_OF_INPUT; 
var c = base64Str.charCodeAt(base64Count) & 0xff; 
base64Count++; 
return c; 

function encodeBase64(str){ 
setBase64Str(str); 
var result = ''; 
var inBuffer = new Array(3); 
var lineCount = 0; 
var done = false; 
while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){ 
inBuffer[1] = readBase64(); 
inBuffer[2] = readBase64(); 
result += (base64Chars[ inBuffer[0] >> 2 ]); 
if (inBuffer[1] != END_OF_INPUT){ 
result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]); 
if (inBuffer[2] != END_OF_INPUT){ 
result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]); 
result += (base64Chars [inBuffer[2] & 0x3F]); 
} else { 
result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]); 
result += ('='); 
done = true; 

} else { 
result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]); 
result += ('='); 
result += ('='); 
done = true; 

lineCount += 4; 
if (lineCount >= 76){ 
result += ('/n'); 
lineCount = 0; 


return result; 

function readReverseBase64(){ 
if (!base64Str) return END_OF_INPUT; 
while (true){ 
if (base64Count >= base64Str.length) return END_OF_INPUT; 
var nextCharacter = base64Str.charAt(base64Count); 
base64Count++; 
if (reverseBase64Chars[nextCharacter]){ 
return reverseBase64Chars[nextCharacter]; 

if (nextCharacter == 'A') return 0; 

return END_OF_INPUT; 

function ntos(n){ 
n=n.toString(16); 
if (n.length == 1) n="0"+n; 
n="%"+n; 
return unescape(n); 

function decodeBase64(str){ 
setBase64Str(str); 
var result = ""; 
var inBuffer = new Array(4); 
var done = false; 
while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT 
&& (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){ 
inBuffer[2] = readReverseBase64(); 
inBuffer[3] = readReverseBase64(); 
result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4)); 
if (inBuffer[2] != END_OF_INPUT){ 
result += ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2)); 
if (inBuffer[3] != END_OF_INPUT){ 
result += ntos((((inBuffer[2] << 6) & 0xff) | inBuffer[3])); 
} else { 
done = true; 

} else { 
done = true; 


return result; 

var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'); 
function toHex(n){ 
var result = '' 
var start = true; 
for (var i=32; i>0;){ 
i-=4; 
var digit = (n>>i) & 0xf; 
if (!start || digit != 0){ 
start = false; 
result += digitArray[digit]; 


return (result==''?'0':result); 

function pad(str, len, pad){ 
var result = str; 
for (var i=str.length; i<len; i++){ 
result = pad + result; 

return result; 

function encodeHex(str){ 
var result = ""; 
for (var i=0; i<str.length; i++){ 
result += pad(toHex(str.charCodeAt(i)&0xff),2,'0'); 

return result; 

function decodeHex(str){ 
str = str.replace(new RegExp("s/[^0-9a-zA-Z]//g")); 
var result = ""; 
var nextchar = ""; 
for (var i=0; i<str.length; i++){ 
nextchar += str.charAt(i); 
if (nextchar.length == 2){ 
result += ntos(eval('0x'+nextchar)); 
nextchar = ""; 


return result; 

//--></script> 
</head> 
<body> 
<form name=code onsubmit="return false()"> 
<textarea name=text style='width:100%;height:75%;' onfocus='if (this.value=="Enter text to encode or decode here."){this.value="";}'>Enter text to encode or decode here.</textarea> 
<table> 
<tr><td align=center> 
<input value="Encode" type=button onclick="document.code.text.value=urlEncode(document.code.text.value);"> 
</td><td align=center> 
URL 
</td><td align=center> 
<input value="Decode" type=button onclick="document.code.text.value=urlDecode(document.code.text.value);"> 
</td></tr> 
<tr><td align=center> 
<input value="Encode" type=button onclick="document.code.text.value=encodeBase64(document.code.text.value);"> 
</td><td align=center> 
Base 64 
</td><td align=center> 
<input value="Decode" type=button onclick="document.code.text.value=decodeBase64(document.code.text.value);"> 
</td></tr> 
<tr><td align=center> 
<input value="Encode" type=button onclick="document.code.text.value=encodeHex(document.code.text.value);"> 
</td><td align=center> 
Hex 
</td><td align=center> 
<input value="Decode" type=button onclick="document.code.text.value=decodeHex(document.code.text.value);"> 
</td></tr> 
<tr><td align=center> 
</td><td align=center> 
<input type=reset value=Clear> 
</td><td align=center> 
</td></tr> 
</table> 
</form> 
<hr> 
Base64 encode/decode was ported from a <a href="http://ostermiller.org/utils/Base64.html">Java Base64 encoder/decoder</a>.<br> 
Base64 encode/decode was ported to <a href="http://ostermiller.org/base64_actionscript.html">Macromedia Actionscript</a>.<br> 
<h3>License</h3> 
<p>This program is free software; you can redistribute it and/or modify it 
under the terms of the GNU General Public License as published by the Free 
Software Foundation; either version 2 of the License, or (at your option) 
any later version.</p> 
<p>This program is distributed in the hope that it will be useful, 
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
or FITNESS FOR A PARTICULAR PURPOSE. See the 
<a href="http://www.gnu.org/copyleft/gpl.html">GNU 
General Public License</a> for more details.</p> 
<div style="padding:0.2cm;"><a href="http://ostermiller.org/calc/">More converters, calculators, and other JavaScript goodies</a></div> 
<div style="padding:0.2cm;text-align:right;"><a href="http://ostermiller.org/">ostermiller.org</a> (<a href="http://ostermiller.org/siteindex.html">site index</a>)</div> 
<div style="padding:0.2cm;"><p>Copyright <a href="http://ostermiller.org/contact.pl?regarding=JavaScript+Encoding" class=mail>Stephen Ostermiller</a> 2003-2006</p></div> 
</body> 
</html> 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线视频中文亚洲| 国产成人精品免高潮在线观看| 亚洲欧美综合区自拍另类| 亚洲自拍偷拍一区| 久久精品影视伊人网| 97在线观看免费| 亚洲国产精品999| 91地址最新发布| 欧美成人h版在线观看| 亚洲第一区在线| 国产精品96久久久久久又黄又硬| 欧美不卡视频一区发布| 九九精品视频在线观看| 2020欧美日韩在线视频| 国产精品夫妻激情| 欧美激情a∨在线视频播放| 国产成人高清激情视频在线观看| 国产成人av网| 原创国产精品91| 久久99青青精品免费观看| 国产第一区电影| 两个人的视频www国产精品| 精品国产福利视频| 一区二区欧美日韩视频| 这里只有精品视频在线| 久久免费高清视频| 欧美日韩亚洲视频一区| 91影院在线免费观看视频| 欧美大全免费观看电视剧大泉洋| 欧洲永久精品大片ww免费漫画| 日韩精品中文字幕在线观看| 久久精品最新地址| 精品小视频在线| 国产精品嫩草视频| 国产成人精品av| 欧美日韩免费在线| 全色精品综合影院| 国产精品高潮呻吟视频| 国产欧美精品久久久| 久久久国产一区| 在线成人一区二区| 成人免费观看a| 亚洲国产精品va在线看黑人| 亚洲国产欧美在线成人app| 国产视频精品在线| 欧美色videos| 国产精品一区二区久久精品| 亚洲精品视频网上网址在线观看| 成人免费网站在线观看| 久久综合久中文字幕青草| 精品福利免费观看| 国产这里只有精品| www.久久久久久.com| 亚洲第一色中文字幕| 日本一区二区在线播放| 亚洲天堂av图片| 亚洲最大的网站| 日韩精品免费在线| 国产乱人伦真实精品视频| 亚洲一区二区三| 日韩免费av一区二区| 国产成人精品综合久久久| 欧美一二三视频| 日韩黄色高清视频| 国产精品一久久香蕉国产线看观看| 亚洲精品97久久| 日韩一区二区三区在线播放| 中日韩美女免费视频网站在线观看| 91日韩在线播放| 亚洲成人av在线播放| 成人黄色午夜影院| 久久激情视频免费观看| 欧美在线视频免费播放| 国产成人鲁鲁免费视频a| 欧美日韩亚洲一区二区| 最近2019年中文视频免费在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 一区二区在线视频| 亚洲国产97在线精品一区| 色偷偷亚洲男人天堂| 亚洲人成电影网站色xx| 91av在线网站| 成人免费高清完整版在线观看| 亚洲色图色老头| 久久久国产在线视频| 国产91免费观看| 国产成人综合亚洲| 国产精品久久久久久久久免费看| 国内精品久久久久久久久| 欧美性xxxx极品hd满灌| 国产精品久久久久久久久| 中文字幕在线视频日韩| 日韩成人激情影院| 狠狠综合久久av一区二区小说| 68精品国产免费久久久久久婷婷| 亚洲的天堂在线中文字幕| 久久精品国产亚洲精品| 亚洲精品久久久一区二区三区| 久久久亚洲天堂| 国产999精品久久久影片官网| 亚洲色图美腿丝袜| 欧美最猛性xxxxx(亚洲精品)| 91久久久在线| 亚洲视频在线播放| 国产日韩欧美中文在线播放| 国产成人精品电影久久久| 2019中文字幕在线免费观看| 欧美日韩在线观看视频小说| 成人写真视频福利网| 91香蕉国产在线观看| 国产精品爽爽爽爽爽爽在线观看| 亚洲欧洲黄色网| 国产区精品在线观看| 亚洲最新av在线网站| 一本色道久久综合狠狠躁篇怎么玩| 欧美亚洲日本网站| 亚洲精品视频免费| 亚洲va欧美va在线观看| 久久久精品一区二区三区| 亚洲免费一在线| 亚洲高清久久久久久| 亚洲黄页网在线观看| 亚洲人成网站色ww在线| 欧美亚洲另类在线| 国产在线精品成人一区二区三区| 自拍偷拍亚洲一区| 青青草原成人在线视频| 国产精品久久电影观看| 波霸ol色综合久久| 97精品国产97久久久久久| 欧美性69xxxx肥| 欧美中文字幕在线| 岛国av在线不卡| 亚洲欧洲一区二区三区久久| 久久在线免费观看视频| 久久99久久久久久久噜噜| 欧美亚洲成人网| 精品国偷自产在线视频99| 亚洲va码欧洲m码| 国产一区二区在线免费| 中文字幕日本精品| 国产欧美中文字幕| 97久久超碰福利国产精品…| 尤物tv国产一区| 日韩福利视频在线观看| 136fldh精品导航福利| 国产不卡在线观看| 国产精品视频久久久久| 高清一区二区三区日本久| 国产精品视频最多的网站| 亚洲天堂网在线观看| 欧美高清视频一区二区| 成人性教育视频在线观看| 色偷偷噜噜噜亚洲男人| 国产成人精品免费视频| 久久偷看各类女兵18女厕嘘嘘| 国产成人精品av| 日韩h在线观看| 久久久久久高潮国产精品视| 国产国语videosex另类| 欧美在线免费观看| 久久久久久免费精品| 国内精品久久久久久| 国产精品大陆在线观看|