关于加密解密 Base64 and URL and Hex Encoding and Decoding_脚本加解密

今天想换一下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> 

时间: 2025-01-27 05:47:00

关于加密解密 Base64 and URL and Hex Encoding and Decoding_脚本加解密的相关文章

文本 Unicode 码加密与解密 代码_脚本加解密

文本 Unicode 码加密与解密 用途:   1. 加密中文信函:   2. 秘密信息:   3. BBS等上面发布加密留言:   4. 网页加密.   此类加密解密是通过 Unescape 脚本的转换实现的,中文文字太多会导致将页面代码膨胀. 使用方法:   加密:源代码粘贴在下面的框内,如果您对 Java 教熟,也可只对部分内容加密,在对应输出部分使用 outword() 即可.注意:请在加密前先备份您的网页   解密方法:将引号内的乱码贴入按解密即可   如果您的问题是 JScript.

JScript.Encode 脚本在线解密 代码_脚本加解密

JScript.Encode 脚本在线解密 用途:   1. 解密英文信函(如果您想加密/解密中文信函等等,请查阅 文本 Unicode 码加密与解密 ):   2. 秘密数字信息:   3. BBS 等上面发布英文.数字留言:   4. 网页解密.   此类 JScript.Encode 码解密,只解密英文.符号,对中文文字不解密.   使用本页面可以解密 javascript 函数,将 script 标记中的内容复制后进行解密(可多次解密),然后将标记修改为 <script language

解密ASP源代码_脚本加解密

从网上兴致冲冲地下载了ASP源代码,准备学习研究的时候.一打开文件,天书般的加密代码.很让人郁闷吧 :( 在网上是找到了解密的方法,得一个文件挨一个文件地打开,复制,粘贴,解密,再复制,再粘贴,再保存......如果一个ASP程序有几百个文件??? 解决办法来了.. 复制代码 代码如下: <% @Language="JavaScript" %> <% /*  *--------------- decode.asp -----------------  * 功能:遍历某

推荐一个javascript的加密工具_脚本加解密

一个加密JAVASCRIPT的开源工具PACKER2.0.2 这是一个并非很复杂的编码工具,编码过后可以被浏览器直接识别.新浪在用.比如:http://comment4.news.sina.com.cn/comment/cmnt_xml.js 从这里进入http://dean.edwards.name/packer/,很简单的一个界面. 设置也很简单Numeric (Base 10) :所有的字符都被编码成数字Normal (Base 62) :所有的字符都被编码成字母与数字符号构成的值.这是推

pack.wsf wsh下的js加密工具新浪也在用_脚本加解密

pack.wsf 复制代码 代码如下: <job> <!-- Windows Scripting Host command line wrapper for Pack.js  --> <!-- Run as CScript //nologo infile > outfile                 --> <script type="text/javascript"> function ICommon(that){if(th

Md5密码在线破解_脚本加解密

http://md5.rednoize.com/这个站是一个搜索引擎的形式.支持双向转换,即:MD5散列->字符串 字符串->MD5散列这个使用比较简单,在上面的文本框中输入MD5散列或者字符串,即可得到相应的字符串或者MD5散列,当然,必须是其数据库中有记录的.目前拥有1,963,442条记录,如图: http://www.milw0rm.com/md5/list.php这个站目前拥有一万多条记录-::MD5 HASH中显示的是MD5散列-::PASS中显示的是字符串,也就是破解出来的密码,

spring、spring-boot配置文件属性内容加解密

实际项目开发过程中,我们的应用程序都有很多的配置文件(例如properties或者yml文件等),我们时常会遇到需要对配置文件敏感字段的参数内容进行加密处理(比如数据库连接密码.与第三方的通信密钥等). 如果采用一定采用传统的springMVC做系统集成,我们可以继承PropertyPlaceholderConfigurer类并复写其converProperty方法,在该方法内一般需要做两步处理: 1.根据参数名propertyName或者根据参数值propertyValue判断当前是否需要进行

DES 加解密的封装和 使用的例子

封装|解密 原创:zhouxianli1978@msn.com ,欢迎喜欢Java的网友加我 DES加密封装 package org.jtool.desutils;import java.security.SecureRandom;import javax.crypto.*;import javax.crypto.spec.DESKeySpec;public class DESEncrypt {    private byte[] desKey;    public DESEncrypt(byt

各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)

原文:各种加密解密函数(URL加密解密.sha1加密解密.des加密解密) 普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语言时这类可逆函数非常难搞定.所以这时尽量使用AES DES RC4 Rabbit TripleDes这些方法. 包含超时的加密解密函数 1 /** 2 * 加密 3 * @param string $string 要加密或解密的字符串 4 * @param string $operation 加密