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) ...
随机推荐
- 如何解决xml在eclipse下的拼写报错
进入preferences——键入“spelling”——看到勾选框:Enable spelling check,去掉勾选框,可消除eclipse下的拼写错误
- UEFI与MBR区别
EFI与MBR启动的区别 大硬盘和WIN8系统,让我们从传统的BIOS+MBR模式升级到UEFI+GPT模式,现在购买的主流电脑,都是预装WIN8系统,为了更好的支持2TB硬盘 ,更快速的启动win ...
- display:block、display:inline与displayinline:block的概念和区别
总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...
- 【瞎想】TDD与汉字;FDD与英语字母
我觉得TDD与汉字;FDD与英语字母他们之间有相似性. FDD的上行和下行用频率的不同来区分,TDD的上行和下行用相同的频率然后在同一时刻相差半个波长(对称频率).如果用维度数描述,FDD是1维的话, ...
- js获取上传的文件并用ajax提交
<form id="form1" name="form1" encType="multipart/form-data" method= ...
- [转]理解RESTful架构
原文地址:http://www.ruanyifeng.com/blog/2011/09/restful 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件" ...
- 创建mysql 存储过程
CREATE PROCEDURE `test_insert_stu`() BEGIN DECLARE num INT; SET num = 0; WHILE (num<10) DO insert ...
- mysql之路【第三篇】
1,查看表的结构 desc 表名; 查看表的详细结构 show create table; show create table \G; (加上G格式化输出), 2,修改表 2. ...
- Oauth2.0 用Spring-security-oauth2 来实现
前言: 要准备再次研究下 统一认证的功能了,我还是觉得实现统一认证 用Oauth2 最好了,所以,现在再次收集资料和记笔记. 正文: 一.概念理解 OAuth2, 是个授权协议, RFC文档见:htt ...
- java.net.URL请求远程文件下载
1:浏览器请求下载 public void listStockcodeUplaod(HttpServletRequest req, HttpServletResponse res) throws Ex ...