一个不错的javascript加密解密算法源码
作者:aasvvv 来源:51js 发布时间:2010-03-28 13:12:00
来炫耀一下,谁看得懂我写的加密算法
写了一整天了,这个代码用于ajax提交,要求就是加密后内容不能变得过长,加密解密需要效率高,至于安全性,被抓取的数据无法被破解就可以了,下面的f23.ts可以算是密钥。现在有点不如意的地方就是英文内容加密后,数据长度增加一倍,中文加密不会增加数据长度,对于ajax提交,其实中文字符长度是大大减少了。
对应的服务器端c#版本,15000字加密再解密不用1毫秒。
//网站提交数据专用
public static string s52s = "8ABC7DLO5MN6Z9EFGdeJfghijkHIVrstuvwWSTUXYabclmnopqKPQRxyz01234";
static bool s52t = true;
static int N, N2;
static int[] s52r = new int[128];
static void s52f()
{
N = s52s.Length;
N2 = N * N;
for (var x = 0; x < s52s.Length; x++)
{
s52r[(int)s52s[x]] = x;
}
s52t = false;
}
public static string s52e(string n)
{
if (s52t) s52f();
int l = n.Length, a, x = 0;
List<char> t = new List<char>(l * 3);
for (; x < l; x++)
{
a = (int)n[x];
if (a < N2)
{
t.Add(s52s[a / N]);
t.Add(s52s[a % N]);
}
else
{
t.Add(s52s[a / N2 + 5]);
t.Add(s52s[(a / N) % N]);
t.Add(s52s[a % N]);
}
}
string s = new string(t.ToArray());
return s.Length.ToString().Length + s.Length.ToString() + s;
}
public static string s52d(string n)
{
if (s52t) s52f();
int c;
if (!int.TryParse(n[0].ToString(), out c)) return "";
if (!int.TryParse(n.Substring(1, c), out c)) return "";
int x = c.ToString().Length + 1;
if (n.Length != c + x) return "";
int nl = n.Length, a;
List<char> t = new List<char>(nl * 3);
for (; x < nl; x++)
{
a = s52r[(int)n[x]];
x++;
if (a < 5)
{
c = a * N + s52r[(int)n[x]];
}
else
{
c = (a - 5) * N2 + s52r[(int)n[x]] * N;
x++;
c += s52r[(int)n[x]];
}
t.Add((char)c);
}
return new string(t.ToArray());
}


猜你喜欢
- 本文介绍了C#连接Oracle数据库的过程。通过instant client和ODP.net中的Oracle.DataAccess.dll,
- python启用多线程后,调用exit出现无法退出的情况,原因是exit会抛出Systemexit的异常,如果在exit外围调用了try,就
- 本文实例讲述了php计算两个整数的最大公约数常用算法。分享给大家供大家参考。具体如下:<?php//计时,返回秒function&nb
- (一)索引的作用索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万
- 那么我们现在开始进行安装配置: 1.一般网上
- Q:在给Dataloader设置worker数量(num_worker)时,到底设置多少合适?这个worker到底怎么工作的?
- 如何结束Python的子线程和子进程结束子线程的方法:这个是搬运其他大神的代码,鄙人也不知道原理,反正拿来主义,暂时没发现什么缺点,先用着再
- 一、定位 oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做f
- 如果您刚刚开始接触网页设计,是不是经常发生这样的问题呢?做好的网页在自己机器上可以正常浏览,而把页面传到服务器上就总是出现看不到图片,css
- layer弹出窗口在弹出时指定了area,弹出后,如果当前页面(iframe)大小比弹出的窗口小,那么就会出现无法操作弹出窗口的尴尬情况。如
- 前言本文旨在记录使用Flask框架过程中与前端Vue对接过程中,存在WebSocket总是连接失败导致前端取不到数据的问题。以及在使用Web
- 程序设计是困难的,其核心是管理的复杂性。计算机程序是人类做出的最复杂的东西。质量是不可靠的且隐蔽的。好的体系架构是必需给程序足够的结构使其健
- 这篇文章主要介绍了python重要函数eval多种用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 这篇文章主要介绍了PYTHON发送邮件YAGMAIL的简单实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 前言 简述bs4:使用pip install beautifulsoup4将bs4包安装到当前的python解释器环境,使用fro
- 这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。1 如何去掉list中重复元素my_list = [
- 字符替换是一个非常重要的功能,javascript 中有一个 String.replace( ),但是此方法有
- 统计十篇新闻TF-IDF统计TF-IDF词频,每篇文章的 top10 的高频词存储为 json 文件TF-IDFTF-IDF(term fr
- 今天来介绍一下Tensorflow里面的反卷积操作,网上反卷积的用法的介绍比较少,希望这篇教程可以帮助到各位反卷积出自这篇论文:Deconv
- 前言昨天,因为项目需求要添加表的更新接口,来存储预测模型训练的数据,所以自己写了一段代码实现了该功能,在开始之前,给大家分享python 操