项目中做云桌面对接,需要在项目中查出用户的明文密码,拼接到云桌面登陆地址中,防止明文传输,做了base64加密解密,防止小白黑客盗取用户密码。

postgrelsql base64加密SQL语句:

查询用户证件号码后四位,base64加密的密码

 SELECT
substr(idno, length(idno) - 3) idno,
ENCODE(cast(password as bytea),'base64') xm
FROM security.oauth_user
WHERE id = #{USERPK}

 

JS代码:

模拟post请求,云桌面需要Post请求模拟登陆,其他系统以get方式

 /*
*功能: 模拟form表单的提交
*参数: URL 跳转地址
* PARAMTERS 参数
* METHOD post或者get
*/
function postUrl(URL, PARAMTERS,METHOD) {
//创建form表单
var temp_form = document.createElement("form");
temp_form.action = URL;
//如需打开新窗口,form的target属性要设置为'_blank'
temp_form.target = "_blank";
temp_form.method = METHOD;
temp_form.style.display = "none";
//添加参数
for (var item in PARAMTERS) {
var opt = document.createElement("textarea");
opt.name = PARAMTERS[item].name;
opt.value = PARAMTERS[item].value;
temp_form.appendChild(opt);
}
document.body.appendChild(temp_form);
//提交数据
temp_form.submit();
}
 //打开APP链接
$scope.openUrl = function(app){
var parames = new Array();
var method = "get";
if(app.name == "云桌面" || app.id == "ebe6132d-cbcc-4349-aa36-5810fa55c048"){
var username = $scope.userInfo.pinyin + $scope.userInfo.idno;
var pwd = window.atob($scope.userInfo.pwd);
parames.push({ name: "login", value: username});
parames.push({ name: "passwd", value: pwd});
method = "post";
} postUrl(app.url, parames,method);
}

补充:

从IE10+浏览器开始,所有浏览器就原生提供了Base64编码、解码方法,不仅可以用于浏览器环境,Service Worker环境也可以使用。
方法名就是 atob 和 btoa ,具体语法如下:

window.btoa('china is so nb') // 编码
"Y2hpbmEgaXMgc28gbmI="
window.atob("Y2hpbmEgaXMgc28gbmI=") // 解码
"china is so nb"

开源的base64.js(https://github.com/dankogai/js-base64,使用很简单,浏览器引入该JS文件,然后Base64编码这样:

Base64.encode('china is so nb'); // 编码
"Y2hpbmEgaXMgc28gbmI="
Base64.decode("Y2hpbmEgaXMgc28gbmI="); // 解码
'china is so nb'

postgrelsql base64加密,JS base64解密的更多相关文章

  1. js base64加密,后台解密

    这是为了解决页面发送post请求,传输密码,在页面的控制台可以看到密码的明文,所以先用base64把要传输的密码转换为非明文,然后在后台解密处理. base64encode.js // base64加 ...

  2. base64加密后无法解密

    记录一个问题: 使用java,或者命令行 base64 命令加密图片文件成加密数据后无法还原成图片 深入:使用java base64工具(sun base64或bouncycastle)加密的数据替换 ...

  3. MD5加密,Base64加密/解密,AES加密/解密

    1.从github上下载GTMBase64-master和AESCrypt-ObjC-master导入工程,如下图所示. 2.使用前的配置及注意事项: (1) 在build phases中的GTMBa ...

  4. 课外知识----base64加密

    每3个字符产生4位的base64字符,不足3个字符,将用“=”补齐至4位base64字符 例如 00--->  MDA= 000--->MDAw base64加密特点 加密后的字符数是4的 ...

  5. Jmeter编写Base64加密函数

    方法一: 使用Beanshell Sampler.BSF Sampler等实现,现已Base64加密为例,脚本如下: import sun.misc.BASE64Decoder; String res ...

  6. base64加密小案例

    python终端下: import base64 >>> dict='{"name":"tom"}' >>> dict.en ...

  7. base64加密原理

    以加密字符串"HkMayfly"为例子 1.转换字符 将待加密字符串的每个字符转换为对应ASCII码的二进制形式并拓展为8位. 2.划分数据 每3个字符为一组,共24位,每6位划分 ...

  8. JS base64 加密和 后台 base64解密(防止中文乱码)

    直接上代码 1,js(2个文件,网上找的)  不要觉的长,直接复制下来就OK //UnicodeAnsi.js文件 //把Unicode转成Ansi和把Ansi转换成Unicode function ...

  9. JS实现base64加密解密

    JS实现base64加密解密 转载自http://blog.csdn.net/fengzheng0306/archive/2006/04/25/676055.aspx 方法一: <HTML> ...

随机推荐

  1. PHP中的生成器

    python中有的,php一样不落下呀. <?php //生成器 //生成器代理 //生成器返回表达示 function gen1() { yield '1'; yield '2'; yield ...

  2. 如何获取gitee上的项目?

    对于没有使用过github/gitee的朋友来说,估计是有点懵. 下面举个例子,比如获取我的gitee上的python接口自动化测试框架 访问主页:https://gitee.com/uncleyon ...

  3. iframe跨域修改子页面内容或样式

    哈哈 当然不能啦 要是能修改百度logo早就是我的头像了

  4. 20182310 第二周&第三周学习总结

    20182310 2019-2020-1 <数据结构与面向对象程序设计>第2周&第3周学习总结 教材学习内容总结 1.首先是String类定义的字符串,然后是print和print ...

  5. Mybatis技术一数据库连接池配置(druid)

    只简单叙述,网上相关的内容很多,这里只是给出参考: 数据库连接池druid配置列表: 配置 缺省值 说明 name   配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来.如 ...

  6. 在函数内部定义的变量加与不加var的区别,匿名函数和有名函数内声明变量的区别

    2014年4月21日,14:49分: 原创:http://www.cnblogs.com/liujinyu/p/3678523.html 今天写天气网英文版的产品频道,maps页面的js时,偶然意识到 ...

  7. 关于Classloader(学习笔记)

    1)类加载的过程是怎么样的?①加载:根据具体需求,选择合适的加载器(Bootstrap ClassLoader不可直接获取.Extension ClassLoader.系统.自定义)来控制字节流的获取 ...

  8. webapi HttpGet标签

    该标签可以指定路由如HttpGet["Test"],以前用的很顺,后来加了Area后,按照area/controller/Test的路径去访问报404,原因是HTTPGet指定路由 ...

  9. Boring counting HDU - 3518 (后缀数组)

    Boring counting \[ Time Limit: 1000 ms \quad Memory Limit: 32768 kB \] 题意 给出一个字符串,求出其中出现两次及以上的子串个数,要 ...

  10. MongoDB Index

    索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要 ...