JS 实现BASE64_ENCODE 和 BASE64_DECODE

/* utf.js - UTF-8 <=> UTF-16 convertion

*

* Copyright (C) 1999 Masanao Izumo

* Version: 1.0

* LastModified: Dec 25 1999

* This library is free. You can redistribute it and/or modify it.

*/

/*

* Interfaces:

* utf8 = utf16to8(utf16);

* utf16 = utf16to8(utf8);

*/

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;

}

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:

// 0xxxxxxx

out += str.charAt(i-1);

break;

case 12: case 13:

// 110x xxxx 10xx xxxx

char2 = str.charCodeAt(i++);

out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));

break;

case 14:

// 1110 xxxx 10xx xxxx 10xx xxxx

char2 = str.charCodeAt(i++);

char3 = str.charCodeAt(i++);

out += String.fromCharCode(((c & 0x0F) << 12) |

((char2 & 0x3F) << 6) |

((char3 & 0x3F) << 0));

break;

}

}

return out;

}

/* Copyright (C) 1999 Masanao Izumo

* Version: 1.0

* LastModified: Dec 25 1999

* This library is free. You can redistribute it and/or modify it.

*/

/*

* Interfaces:

* b64 = base64encode(data);

* data = base64decode(b64);

*/

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) {

/* c1 */

do {

c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];

} while(i < len && c1 == -1);

if(c1 == -1)

break;

/* c2 */

do {

c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];

} while(i < len && c2 == -1);

if(c2 == -1)

break;

out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));

/* c3 */

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));

/* c4 */

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;

}

//input base64 encode

function strdecode(str){

return utf8to16(base64decode(str));

}

document.write(strdecode('5L2g5aW9Iee+juWlsyE='));

首先直接做成一页,中间步骤的数据处理用JS,然后就可以正常提交,交给原系统的注册处理页面

form 多个submit php,一个复杂的PHP表单处理方案?相关推荐

  1. 使用php创建一个注册表单,如何实现一个简单的注册表单

    创建一个注册表单是非常容易的 - 它事实上意味着,你只需要创建一个表单,表单将更新一些User的模型对象(这个例子是一个Doctrine实体)并保存它. 受欢迎的FOSUserBundle 提供了一个 ...

  2. 用javascript写一个简单的登录表单,包含用户名、密码和手机号码。提交数据时验证用户名、密码和手机号输入格式。

    题目:写一个用于登录的表单,包含用户名.密码和手机号码.提交数据的时候,要求验证: 1. 用户名必须输入汉字: 2. 密码总共6位,前2位为字母,后4位为数字: 3. 手机号码符合中国大陆手机号码格式 ...

  3. 让一个网页打开的同时自动为另一个网页自动填写表单并提交

    让一个网页打开的同时自动为另一个网页自动填写表单并提交   if  you  use  "window.open"  to  open  the  window,you  can  ...

  4. 运用php制作一个表单,PHP 表单处理,一个简单的 HTML 表单

    PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data). PHP - 一个简单的 HTML 表单,我们在平时运用PHP这门语言的时候,最频繁的是就是表单提交了.如:用 ...

  5. django一个html先后两个form,django 一个页面两个表单 怎么提交

    收到一只叮咚 1234567891011121314151617181920212223242526272829办法1.同一个页面中建立两个表单 各自提交: 1234567812345678办法2:如 ...

  6. django中如何优雅的处理一个多按钮的表单

    1.     一个表单多个按钮 OA MATSUI 的问题: 如过一个html表单,包含一个书的列表信息,有两个按钮, 一个是添加,一个是修改,实现不同的功能,代码如下. <form actio ...

  7. 用php实现一个简易的web表单生成器,PHP—Web表单生成器

    1.实例: 2. 需求分析 在项目的实际开发中,经常需要设计各种各样表单.直接编写HTML表单虽然简单,但修改.维护相对麻烦. 因此,可以利用PHP实现一个Web表单生成器,使其可以根据具体的需求定制 ...

  8. Asp.net中一个页面多个表单的解决方案

    <form id="form1" runat="server"> <input name="TrueName" type= ...

  9. form提交后台注解拿不到数据_Form表单详解

    主要内容Form表单.表单元素.表单元素的属性.HTML5新增type类型和HTML新增属性 知乎视频​www.zhihu.com 知乎视频​www.zhihu.com 知乎视频​www.zhihu. ...

最新文章

  1. Windows Server 2003安装卡巴斯基2010成功
  2. 【图】2015年Google搜索引擎排名算法(完整版)
  3. 清华大学计算机专业学生埃朗读村,《朗读者~矣晓沅(清华大学计算机研究生  彝族)》...
  4. linux如何分析系统的堆栈,Linux内核分析:操作系统是如何工作的?
  5. 分度值1g是什么意思_都什么年代了,还有人在 MySQL 索引上碰一鼻子灰?
  6. 【No.7 C++对象的构造与析构时间】
  7. HAproxy编译安装
  8. 编写JQuery插件-2
  9. 03-mysql的相关命令-启动与关闭服务-配置环境变量
  10. HTML与XHTML区别
  11. Pytorch相关函数详解
  12. Python 柱状图 横坐标 名字_Python气象绘图教程(四)
  13. 数独游戏,随机生成只有唯一解的数独表
  14. java鼠标点击按钮_Java 模拟鼠标事件 java中控制鼠标点击的方法
  15. Android 开发工具一键下载
  16. 无法在计算机上读取移动硬盘,解决苹果电脑不能读写移动硬盘
  17. doc创建php文件,PHP读取创建txt,doc,xls,pdf类型文件
  18. Spring Cloud Hystrix 全解 (1) - 总览篇
  19. GB2312和BIG5,Unicode/UTF8等编码之间的互相转化
  20. 【OpenCV 例程300篇】214. 绘制椭圆的参数详解

热门文章

  1. 基于文本挖掘的企业隐患排查质量分析模型
  2. LINE: Large-scale Information Network Embedding
  3. 随时找到数据流中的中位数
  4. 机器学习笔记:(时间序列中的线性回归)如何选择预测变量
  5. 深度学习应用实战案例-员工流失预测模型(Python源代码)
  6. R语言实战应用精讲50篇(二)-多重线性回归系列之稳健回归
  7. linux 压缩和解压缩(zip/unzip)
  8. model.train_on_batch介绍【TensorFlow2入门手册】
  9. MatLab基础操作
  10. awk打印第一个字母