静态网页加密

前两天看见有人问静态网页加密问题,就写了这个代码 
稍微有些长,解释一下思路: 
加密时:先把用户的密钥A用md5加密为B,然后用B异或源文件S0得到目标文件S1,把S1存入js变量中。 
解密时:询问密钥,然后操作同加密。 
因为用了md5,个人认为没有密钥的时候是无法破解的(暴力除外)

大家试用一下

Web Encoder

body {
font-size:12px;
line-height:12px;
background-Color:buttonface;
border-width:0px;
overflow:auto;
margin:0px;
padding:4px;
}

#t1, #t2 {
width:100%;
height:40%;
border-width:1px;
overflow:auto;
height:expression((document.body.clientHeight-100)/2);
}

input {
border-width:1px;
padding-left:10px;
padding-right:10px;
margin:4px;
}

function webEncode(){
strSource=escape(XOR(t1.value,STR.md5(p1.value)));
//strSource=t1.value;
strOut="\r\nstrHTML=\"\";\r\n";
for(var i=0;i+70> 2] >> 8 * ( i %4)) & 0xFF) ";
strOut+="> 2] >> 8 * ((i+1)%4)) & ";
strOut+="0xFF) > 2] >> 8 * ((i+2)%";
strOut+="4)) & 0xFF);\r\n\t\t for(var j = 0; j binarray.length * 32) str += this.b64pad;\r\n\t\t else ";
strOut+="str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);\r\n\t\t }\r\n\t\t }\r\n\t\t r";
strOut+="eturn str;\r\n\t\t},\r\n\t\t\r\n\tbinl2hex:\r\n\t\tfunction(binarray){\r\n\t\t var hex_t";
strOut+="ab = this.hexcase ? \"0123456789ABCDEF\" : \"0123456789abcdef\";\r\n\t\t var ";
strOut+="str = \"\";\r\n\t\t for(var i = 0; i >2] >> ((i%4)*8+4)) & 0xF) +\r\n\t\t";
strOut+=" hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);\r\n\t\t ";
strOut+=" }\r\n\t\t return str;\r\n\t\t},\r\n\t\r\n\tbinl2str:\r\n\t\tfunction(bin){\r\n\t\t var st";
strOut+="r = \"\";\r\n\t\t var mask = (1 >5] >>> (i % 32)) & mask);\r\n\t\t return str;\r\n\t\t},\r\n\t\t\r\n\tbit_rol:";
strOut+="\r\n\t\tfunction(num, cnt){return (num >> (32 - cnt));},\r\n";
strOut+="\t\t\r\n\tcore_hmac_md5:\r\n\t\tfunction(key, data){\r\n\t\t var bkey = str2binl(k";
strOut+="ey);\r\n\t\t if(bkey.length > 16) bkey = core_md5(bkey, key.length * this";
strOut+=".chrsz);\r\n\t\t\r\n\t\t var ipad = Array(16), opad = Array(16);\r\n\t\t for(var";
strOut+=" i = 0; i > 5] |= 0x80 ";
strOut+=">> 9) >";
strOut+=" 16) + (y >> 16) + (lsw >> 16);\r\n\t\t return (msw >5] |= (str.charCodeAt(i";
strOut+=" \/ this.chrsz) & mask) ";
t2.value=strOut;
}

function runCode(){
win=open("about:blank");
win.document.write(t2.value);
win.document.close();
}

function addSlash(str){
return(str).replace(/\\/g,"\\\\").replace(/\//g,"\\\/").replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\"/g,"\\\"").replace(/\'/g,"\\\'").replace(/\t/g,"\\t");
}

function XOR(strV,strPass){
var intPassLength=strPass.length;
var re="";
for(var i=0;i

  ";
strAskPass+="Password:";
strAskPass+="  

";
document.write(strAskPass);
}

var STR =
{
hexcase : 0, /* hex output format. 0 - lowercase; 1 - uppercase */
b64pad : "", /* base-64 pad character. "=" for strict RFC compliance */
chrsz : 8, /* bits per input character. 8 - ASCII; 16 - Unicode */

b64_hmac_md5:
function(key, data) { return binl2b64(core_hmac_md5(key, data)); },

b64_md5:
function(s){ return binl2b64(core_md5(str2binl(s), s.length * this.chrsz));},

binl2b64:
function(binarray){
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var str = "";
for(var i = 0; i > 2] >> 8 * ( i %4)) & 0xFF) > 2] >> 8 * ((i+1)%4)) & 0xFF) > 2] >> 8 * ((i+2)%4)) & 0xFF);
for(var j = 0; j binarray.length * 32) str += this.b64pad;
else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
}
}
return str;
},

binl2hex:
function(binarray){
var hex_tab = this.hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for(var i = 0; i >2] >> ((i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
}
return str;
},

binl2str:
function(bin){
var str = "";
var mask = (1 >5] >>> (i % 32)) & mask);
return str;
},

bit_rol:
function(num, cnt){return (num >> (32 - cnt));},

core_hmac_md5:
function(key, data){
var bkey = str2binl(key);
if(bkey.length > 16) bkey = core_md5(bkey, key.length * this.chrsz);

var ipad = Array(16), opad = Array(16);
for(var i = 0; i > 5] |= 0x80 >> 9) > 16) + (y >> 16) + (lsw >> 16);
return (msw >5] |= (str.charCodeAt(i / this.chrsz) & mask)

Source:

Password:

Encoded:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

(0)

相关推荐

  • Javascript脚本实现静态网页加密实例代码

    Javascript脚本实现静态网页加密,阅读Javascript脚本实现静态网页加密,前两天看见有人问静态网页加密问题,就写了这个代码思路:加密时:先把用户的密钥A用md5加密为B,然后用B异或源文件S0得到目标文件S1,把S1存入js变量中.解密时:询问密钥,然后操作同加密 前两天看见有人问静态网页加密问题,就写了这个代码 思路: 加密时:先把用户的密钥A用md5加密为B,然后用B异或源文件S0得到目标文件S1,把S1存入js变量中. 解密时:询问密钥,然后操作同加密. 因为用了md5,个人

  • 静态网页加密

    前两天看见有人问静态网页加密问题,就写了这个代码  稍微有些长,解释一下思路:  加密时:先把用户的密钥A用md5加密为B,然后用B异或源文件S0得到目标文件S1,把S1存入js变量中.  解密时:询问密钥,然后操作同加密.  因为用了md5,个人认为没有密钥的时候是无法破解的(暴力除外) 大家试用一下 Web Encoder body { font-size:12px; line-height:12px; background-Color:buttonface; border-width:0p

  • 在Docker容器中部署静态网页的方法教程

    前言 一般我们在访问容器时需要通过容器的端口来访问,那如何设置容器的端口映射呢? 我们通过以下命令来设置: docker run -p ip:hostPort:containerPort [--name] [-i] [-t] 镜像名 [COMMAND][ARG...] ip:表示宿主机ip hostPort:宿主机端口号 containerPort:容器端口号 设置的方式有以下几种: containerPort,指定容器端口号,宿主机端口随机生成 [root@localhost ~]# dock

  • Linux使用Node.js建立访问静态网页的服务实例详解

    Linux使用Node.js建立访问静态网页的服务实例详解 一.安装node.js运行所需要的环境,:http://www.jb51.net/article/79536.htm 二.创建node目录(/node/www),并在目录下创建node.js服务文件server.js var http = require('http'); var fs = require('fs');//引入文件读取模块 var documentRoot = '/node/www';//需要访问的文件的存放目录 var

  • 用libtemplate实现静态网页生成

    by coldwind/iwind/month/ccterran http://iwind.org   有很长一段时间我到处问别人怎么实现静态网页,还向唠叨提过问题,而如今,我终于想出了一个很简单的办法,那就是用libtemplate来实现它.  大家看:http://doc.iwind.org  下面我就如何实现静态网页输出谈一谈.  1,修改libtemplate.  加入两个函数  //将分析结果保存到文件中去  function savetofile ($dir,$varname){  

  • 用libTemplate实现静态网页的生成

    作者:iwind 原来在dev-club发表的一篇文章,将怎么用模板处理程序PHPlib 中的template.inc实现静态网页的生成,呵呵,居然被列入精华,并被多个网站转载,想来这是荣幸.其实网上这方面的东西很多了,我上此发布的所谓IAMS( iwind 文章管理系统),里面也有,有心人可以看一下.下面我只是简要在总结一次. 现在一般说生成静态网页的方法有三种,一个是配置服务器,大家可以到http://www.devarticles.com/c/b/PHP/ 去找找看,对于这个很多地方都有的

  • python+django加载静态网页模板解析

    接着前面Django入门使用示例 今天我们来看看Django是如何加载静态html的? 我们首先来看一看什么是静态HTML,什么是动态的HTML?二者有什么区别? 静态HTML指的是使用单纯的HTML或者结合CSS制作的包括图片.文字等的只供用户浏览但不包含任何脚本.不含有任何交互功能的网页! 动态的HTML指的是网页不仅提供给用户浏览,网页本身还有交互功能,存在着在脚本如JAVASCRIPT,并利用某种服务器端语言如PHP等实现如用户注册,用户登录,上传文件,下载文件等功能 接下来,了解下加载

  • Python使用爬虫爬取静态网页图片的方法详解

    本文实例讲述了Python使用爬虫爬取静态网页图片的方法.分享给大家供大家参考,具体如下: 爬虫理论基础 其实爬虫没有大家想象的那么复杂,有时候也就是几行代码的事儿,千万不要把自己吓倒了.这篇就清晰地讲解一下利用Python爬虫的理论基础. 首先说明爬虫分为三个步骤,也就需要用到三个工具. ① 利用网页下载器将网页的源码等资源下载. ② 利用URL管理器管理下载下来的URL ③ 利用网页解析器解析需要的URL,进而进行匹配. 网页下载器 网页下载器常用的有两个.一个是Python自带的urlli

  • Linux运维基础httpd静态网页教程

    目录 1.利用仓库创建httpd lrzsz unzip文件 2.对源码文件进行解压 3.配置httpd-vhosts.conf的3种方法 方法1:(相同IP,不同端口号配置) 方法2:(不同IP,相同端口号配置) 方法3:(相同IP,相同端口号,不同域名) 1.利用仓库创建httpd lrzsz unzip文件 1.挂载 [root@clq0917 ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 写配置文件 [root@clq09

  • Nginx一键安装部署静态网页的过程详解

    目录 Nginx安装和部署 1.输入指令,下载相关的依赖包 2.在你的linux服务器上创建目录:install 3.进入刚刚创建的目录: 4.下载并解压安装包 5.进入刚刚解压好的目录: 6.分别执行下面命令 7.编辑启动端口(图片的端口是经过修改的,默认是80端口) 8.启动nginx 9.简单的项目部署(最简单的) 10.网页部署成功 Nginx安装和部署 1.输入指令,下载相关的依赖包 yum -y install gcc zlib zlib-devel pcre-devel opens

随机推荐