javascript 字符串加密的几种方法
8进制
/*8进制加密*/
function EnEight(){
var monyer = new Array();var i,s;
for(i=0;i<txt.value.length;i++)
monyer+="\\"+txt.value.charCodeAt(i).toString(8);
txt.value=monyer;
}
/*8进制解密*/
function DeEight(){
var monyer = new Array();var i;
var s=txt.value.split("\\");
for(i=1;i<s.length;i++)
monyer+=String.fromCharCode(parseInt(s[i],8));
txt.value=monyer;
}
10进制
/*10进制加密*/
function Encrypt(){
var monyer = new Array();var i,s;
for(i=0;i<txt.value.length;i++){
s=txt.value.charCodeAt(i).toString(16);
if(Decimal1.checked) monyer+="&#"+txt.value.charCodeAt(i)+";";
else if (Decimal2.checked) monyer+="&#"+new Array(7-String(s).length).join("0")+txt.value.charCodeAt(i);
else monyer+=txt.value.charCodeAt(i)+",";
}txt.value=monyer;
}
/*10进制解密*/
function Decrypt(){
var monyer = new Array();var i;
if(Decimal1.checked){
var s=txt.value.split(";");
for(i=0;i<s.length;i++){
s[i]=s[i].replace('&#','');
monyer+=String.fromCharCode(s[i]);
}
}else if(Decimal2.checked){
var s=txt.value.split("&");
for(i=1;i<s.length;i++){
s[i]=s[i].replace('#','');
monyer+=String.fromCharCode(s[i]);
}
}else{
var s=txt.value.split(",");
for(i=0;i<s.length;i++)
monyer+=String.fromCharCode(s[i]);
}txt.value=monyer;
}
16进制
/*16进制加密*/
function JavaEn(){
var monyer = new Array();var i,s;
for(i=0;i<txt.value.length;i++){
s=txt.value.charCodeAt(i).toString(16);
if(hex1.checked) monyer+="\\u"+new Array(5-String(s).length).join("0")+s;
else if(hex2.checked) monyer+="&#x"+new Array(5-String(s).length).join("0")+s+";";
else if(hex3.checked) monyer+="\\x"+new Array(5-String(s).length).join("0")+s;
else monyer+="\\"+new Array(5-String(s).length).join("0")+s;
}txt.value=monyer;
}
var p=document.documentElement.outerHTML.length;
/*16进制解密*/
function JavaDe(){
if(hex1.checked){
var monyer = new Array();var i;
var s=txt.value.split("\\");
for(i=1;i<s.length;i++){
s[i]=s[i].replace('u','');
monyer+=String.fromCharCode(parseInt(s[i],16));
}
}else if(hex2.checked){
var monyer = new Array();var i;
var s=txt.value.split(";");
for(i=0;i<s.length;i++){
s[i]=s[i].replace('&#x','');
monyer+=String.fromCharCode(parseInt(s[i],16));
}
}
else if(hex3.checked){
var monyer = new Array();var i;
var s=txt.value.split("\\");
for(i=1;i<s.length;i++){
s[i]=s[i].replace('x','');
monyer+=String.fromCharCode(parseInt(s[i],16));
}
}else{
var monyer = new Array();var i;
var s=txt.value.split("\\");
for(i=1;i<s.length;i++)
monyer+=String.fromCharCode(parseInt(s[i],16));
}txt.value=monyer;
}
/*任意进制加密*/
function EnChTo(h){
var monyer = new Array();var i,s;
for(i=0;i<txt.value.length;i++)
monyer+=txt.value.charCodeAt(i).toString(h)+" ";
txt.value=monyer;
}
/*任意进制解密*/
function DeChTo(h){
var monyer = new Array();var i;
var s=txt.value.split(" ");
for(i=0;i<s.length;i++)
monyer+=String.fromCharCode(parseInt(s[i],h));
txt.value=monyer;
}
URI加密
function HtmlEncode(i)
{
if (i == 1)
txt.value
= txt.value.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g,
'>'); if (i == 2)
txt.value
= txt.value.replace(/&/g, '&').replace(/"/g, '\"').replace(/</g,
'<').replace(/>/g, '>')
} var hex_chr = "0123456789abcdef"; function rhex(num)
{
str = ""; for (j = 0; j <= 3; j++)
str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) + hex_chr.charAt((num >> (j * 8)) & 0x0F); return str
}
base64
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1,
-1, -1); function base64encode(str)
{
var out, i, len;
var c1, c2, c3;
len = str.length;
i = 0;
out = ""; while (i < len)
{
c1 = str.charCodeAt(i++) & 0xff; if (i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += "==";
break
} c2 = str.charCodeAt(i++); if (i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
out += "=";
break
} c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
out += base64EncodeChars.charAt(c3 & 0x3F)
} return out
} function base64decode(str)
{
var c1, c2, c3, c4;
var i, len, out;
len = str.length;
i = 0;
out = ""; while (i < len)
{
do
{
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
} while (i < len && c1 == -1); if (c1 == -1)
break; do
{
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
} while (i < len && c2 == -1); if (c2 == -1)
break; out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4)); do
{
c3 = str.charCodeAt(i++) & 0xff; if (c3 == 61)
return out; c3 = base64DecodeChars[c3]
} while (i < len && c3 == -1); if (c3 == -1)
break; out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2)); do
{
c4 = str.charCodeAt(i++) & 0xff; if (c4 == 61)
return out; c4 = base64DecodeChars[c4]
} while (i < len && c4 == -1); if (c4 == -1)
break; out += String.fromCharCode(((c3 & 0x03) << 6) | c4)
} return out
}
utf8<--utf16
function utf16to8(str)
{
var out, i, len, c;
out = "";
len = str.length; for (i = 0; i < len; i++)
{
c = str.charCodeAt(i); if ((c >= 0x0001) && (c <= 0x007F))
{
out += str.charAt(i)
} else if (c > 0x07FF)
{
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F))
} else
{
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F))
}
} return out
}
utf8-->utf16
function utf8to16(str)
{
var out, i, len, c;
var char2, char3;
out = "";
len = str.length;
i = 0; while (i < len)
{
c = str.charCodeAt(i++); switch (c >> 4)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
out += str.charAt(i - 1); break; case 12:
case 13:
char2 = str.charCodeAt(i++); out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break; case 14:
char2 = str.charCodeAt(i++); char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0F) << 12) | ((char2 & 0x3F) << 6)
| ((char3 & 0x3F) << 0));
break
}
} return out
}
md5
function str2blks_MD5(str)
{
nblk = ((str.length + 8) >> 6) + 1;
blks = new Array(nblk * 16); for (i = 0; i < nblk * 16; i++)
blks[i] = 0; for (i = 0; i < str.length; i++)
blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8); blks[i >> 2] |= 0x80 << ((i % 4) * 8);
blks[nblk * 16 - 2] = str.length * 8;
return blks
} function add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF)
} function rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt))
} function cmn(q, a, b, x, s, t)
{
return add(rol(add(add(a, q), add(x, t)), s), b)
} function ff(a, b, c, d, x, s, t)
{
return cmn((b & c) | ((~b) & d), a, b, x, s, t)
} function gg(a, b, c, d, x, s, t)
{
return cmn((b & d) | (c & (~d)), a, b, x, s, t)
} function hh(a, b, c, d, x, s, t)
{
return cmn(b ^ c ^ d, a, b, x, s, t)
} function ii(a, b, c, d, x, s, t)
{
return cmn(c ^ (b | (~d)), a, b, x, s, t)
} function calcMD5(str)
{
x = str2blks_MD5(str);
a = 1732584193;
b = -271733879;
c = -1732584194;
d = 271733878; for (i = 0; i < x.length; i += 16)
{
olda = a;
oldb = b;
oldc = c;
oldd = d;
a = ff(a, b, c, d, x[i + 0], 7, -680876936);
d = ff(d, a, b, c, x[i + 1], 12, -389564586);
c = ff(c, d, a, b, x[i + 2], 17, 606105819);
b = ff(b, c, d, a, x[i + 3], 22, -1044525330);
a = ff(a, b, c, d, x[i + 4], 7, -176418897);
d = ff(d, a, b, c, x[i + 5], 12, 1200080426);
c = ff(c, d, a, b, x[i + 6], 17, -1473231341);
b = ff(b, c, d, a, x[i + 7], 22, -45705983);
a = ff(a, b, c, d, x[i + 8], 7, 1770035416);
d = ff(d, a, b, c, x[i + 9], 12, -1958414417);
c = ff(c, d, a, b, x[i + 10], 17, -42063);
b = ff(b, c, d, a, x[i + 11], 22, -1990404162);
a = ff(a, b, c, d, x[i + 12], 7, 1804603682);
d = ff(d, a, b, c, x[i + 13], 12, -40341101);
c = ff(c, d, a, b, x[i + 14], 17, -1502002290);
b = ff(b, c, d, a, x[i + 15], 22, 1236535329);
a = gg(a, b, c, d, x[i + 1], 5, -165796510);
d = gg(d, a, b, c, x[i + 6], 9, -1069501632);
c = gg(c, d, a, b, x[i + 11], 14, 643717713);
b = gg(b, c, d, a, x[i + 0], 20, -373897302);
a = gg(a, b, c, d, x[i + 5], 5, -701558691);
d = gg(d, a, b, c, x[i + 10], 9, 38016083);
c = gg(c, d, a, b, x[i + 15], 14, -660478335);
b = gg(b, c, d, a, x[i + 4], 20, -405537848);
a = gg(a, b, c, d, x[i + 9], 5, 568446438);
d = gg(d, a, b, c, x[i + 14], 9, -1019803690);
c = gg(c, d, a, b, x[i + 3], 14, -187363961);
b = gg(b, c, d, a, x[i + 8], 20, 1163531501);
a = gg(a, b, c, d, x[i + 13], 5, -1444681467);
d = gg(d, a, b, c, x[i + 2], 9, -51403784);
c = gg(c, d, a, b, x[i + 7], 14, 1735328473);
b = gg(b, c, d, a, x[i + 12], 20, -1926607734);
a = hh(a, b, c, d, x[i + 5], 4, -378558);
d = hh(d, a, b, c, x[i + 8], 11, -2022574463);
c = hh(c, d, a, b, x[i + 11], 16, 1839030562);
b = hh(b, c, d, a, x[i + 14], 23, -35309556);
a = hh(a, b, c, d, x[i + 1], 4, -1530992060);
d = hh(d, a, b, c, x[i + 4], 11, 1272893353);
c = hh(c, d, a, b, x[i + 7], 16, -155497632);
b = hh(b, c, d, a, x[i + 10], 23, -1094730640);
a = hh(a, b, c, d, x[i + 13], 4, 681279174);
d = hh(d, a, b, c, x[i + 0], 11, -358537222);
c = hh(c, d, a, b, x[i + 3], 16, -722521979);
b = hh(b, c, d, a, x[i + 6], 23, 76029189);
a = hh(a, b, c, d, x[i + 9], 4, -640364487);
d = hh(d, a, b, c, x[i + 12], 11, -421815835); c = hh(c, d, a, b, x[i + 15], 16, 530742520);
b = hh(b, c, d, a, x[i + 2], 23, -995338651);
a = ii(a, b, c, d, x[i + 0], 6, -198630844);
d = ii(d, a, b, c, x[i + 7], 10, 1126891415);
c = ii(c, d, a, b, x[i + 14], 15, -1416354905);
b = ii(b, c, d, a, x[i + 5], 21, -57434055);
a = ii(a, b, c, d, x[i + 12], 6, 1700485571);
d = ii(d, a, b, c, x[i + 3], 10, -1894986606);
c = ii(c, d, a, b, x[i + 10], 15, -1051523);
b = ii(b, c, d, a, x[i + 1], 21, -2054922799);
a = ii(a, b, c, d, x[i + 8], 6, 1873313359);
d = ii(d, a, b, c, x[i + 15], 10, -30611744);
c = ii(c, d, a, b, x[i + 6], 15, -1560198380);
b = ii(b, c, d, a, x[i + 13], 21, 1309151649);
a = ii(a, b, c, d, x[i + 4], 6, -145523070);
d = ii(d, a, b, c, x[i + 11], 10, -1120210379);
c = ii(c, d, a, b, x[i + 2], 15, 718787259);
b = ii(b, c, d, a, x[i + 9], 21, -343485551);
a = add(a, olda);
b = add(b, oldb);
c = add(c, oldc);
d = add(d, oldd)
} return rhex(a) + rhex(b) + rhex(c) + rhex(d)
}
javascript 字符串加密的几种方法的更多相关文章
- JavaScript确定一个字符串是否包含在另一个字符串中的四种方法
一.indexOf() 1.定义 indexOf()方法返回String对象第一次出现指定字符串的索引,若未找到指定值,返回-1.(数组同一个概念) 2.语法 str.indexOf(searchVa ...
- Js 字符串拼接的两种方法
字符串拼接的两种方法 用数组的方法的好处是:避免变量重新定义.赋值 <!DOCTYPE html> <html lang="en"> <head> ...
- javascript 字符串进行 utf8 编码的方法(转)
实践中碰到了一个大问题,在 javascript 中,可能有一些中文字符串,我们想将其进行二进制流编码的时候,需要将其转换为 utf8 的编码. 也就是说,输入的是一个字符串:'呆滞的慢板今天挣了10 ...
- JavaScript数据类型判断的四种方法
码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14416375.html 本文分享了JavaScript类型判断的四种方法:typeo ...
- Javascript刷新页面的几种方法
Javascript刷新页面的几种方法: window.navigate(location)location.reload()location=locationlocation.assign(loca ...
- Javascript刷新页面的八种方法
/** * Javascript刷新页面的八种方法 * 说明一下,jQuery没有发现刷新页面的方法. */ 1 history.go(0) 2 location.reload() 3 locatio ...
- [转]Javascript定义类的三种方法
作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html 将近2 ...
- Python字符串连接的5种方法
总结了一下Python字符串连接的5种方法: 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 "+" 来连接两个字符串: ...
- Javascript刷新页面的几种方法:
Javascript刷新页面的几种方法: 1 history.go(0) 2 window.location.reload() window.location.reload(true) ...
随机推荐
- C++11异常处理 noexcept
1.简介 在C语言中,如果程序的运行出现异常.错误,我们想提供方案处理这些异常时,我们面临许多问题,如: (1)C语言没有提供统一(标准)的方式来处理错误: (2)无法保证错误会被正确的处理: (3) ...
- HV和VM 内存性能测试对比结果
安装工具: apt-get install mbw 使用 mbw 1024 测试 VM ubuntu12.04 : ldd --versionldd (Ubuntu EGLIBC 2.15-0ubun ...
- 延时程序执行Qt
有时候为了让程序暂停一下,不让它一直跑下去,可以使它进入循环结构中! 例如: #include <QCoreApplication> #include <qdebug.h> # ...
- Js 校验时间、比较时间 和转换时间格式
function checkDate(obj){ var strDate = obj.value; var nowDate = new Date(); var a=/^(\d{1,4})(-|\/)( ...
- Spring注解@PostConstruct与@PreDestroy
关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二 ...
- asp.net(C#)时间相减 得到天数、小时、分钟、秒差
asp.net(C#)时间相减 得到天数.小时.分钟.秒差 DateTime dtone = Convert.ToDateTime("2007-1-1 05:00:00"); Da ...
- selenium+eclispse里代码备注
1.火狐.谷歌和IE浏览器引擎都要重新下载selenium官网引擎,并设置路径才可以支持selenium3 而狐火用自己的引擎不用设置路径既可以支持selenium2也支持selenium3,谷歌和I ...
- 控件 UI: 字体的自动继承的特性, Style, ControlTemplate
字体的自动继承的特性 Style 样式 ControlTemplate 控件模板 示例1.演示字体的自动继承的特性Controls/UI/FontInherit.xaml <Page x:Cla ...
- 网络爬虫2--PHP/CURL库(client URL Request Library)
PHP/CURL库功能 多种传输协议.CURL(client URL Request Library),含义是“客户端URL请求库”. 不像上一篇所用的PHP内置网络函数,PHP/CURL支持多种 ...
- iOS随机生成数字
有时候我们需要在程序中生成随机数,但是在Objective-c中并没有提供相应的函数,好在C中提供了rand().srand().random().arc4random()几个函数.那么怎么使用呢?下 ...