全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

NodeJS实现客户端js加密

思路:

  • 服务端渲染业务代码js =>
  • 前后端约定加密算法 =>
  • 业务代码进行签名 =>
  • 客户端解密业务代码 =>
  • eval 执行

Node 路由示例:

/**
 * 请自定义 restful API 这里以 GET 为例
 * @param {req}
 * @param {res}
 * @return {next()}
 */
//var util = require('utility');
exports.encryption = function(req, res){
 //GET
 var name = req.query.name
 , jsStr // 用于 服务端渲染的 js 脚本
 , doc = {
 n : '支持请求参数',
 };
 // isSafe : 常规安全字符判断
 if (fun.isSafe(name)) doc['n'] = name;
 /////////////////需要加密的js 业务代码 start///////////////////// 
 jsStr = function(n){
 alert('开始执行业务代码~')
 // 变量 N 可以是某些 之前需要 服务端渲染的 信息
 // 比如 自产 的 url 之类
 function sayHello(s){
 alert('您输入了: '+s);
 }
 sayHello(n);
 //
 }
 //////////////////需要加密的js 业务代码 end//////////////////// 
 jsStr = '('+jsStr.toString()+')("'+( name ? doc.n : '默认的')+'")';
 var key = util.md5('highsea90'+Date.now())
 var resStr = myFromCharCode(key, jsStr);
 res.render('cm/eval',{
 title : 'js 加密 demo',
 charCode : escape(myFromCharCode.toString()),
 data : escape(resStr),
 key : key
 })
};
 /**
 * @param {m}密钥
 * @param {text}文本
 * @return {last}加密文本
 */
 function myFromCharCode (m, text){
 var last = '';
 for (var i = 0 , l = text.length; i < l; i++) {
 for (var j = 0, k = m.length; j < k; j++) {
 var key = m.charCodeAt(j)
 , text2 = text.charCodeAt(i) ^ key
 }
 last += String.fromCharCode(text2);
 }
 return last;
 }

客户端 页面示例:

<!DOCTYPE html>
<html>
<head>
 <title><%=title%></title>
</head>
<body>
<script type="text/javascript">
 // 执行 约定的 加密算法
 eval(unescape("<%=charCode%>"));
 // 服务端加密后的 字符串 用约定的 算法进行解密
 var str = myFromCharCode("<%=key%>", unescape("<%=data%>"));
 // 执行业务代码
 eval(str);
</script>
</body>
</html>

代码演示

一个小录像:

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# NodeJS  # 加密  # 获取本机IP地址的实例(JavaScript / Node.js)  # nodejs获取本机内网和外网ip地址的实现代码  # 详解node HTTP请求客户端 - Request  # nodejs socket服务端和客户端简单通信功能  # Node.js中的http请求客户端示例(request client)  # 使用node.js 获取客户端信息代码分享  # nodejs socket实现的服务端和客户端功能示例  # nodejs(officegen)+vue(axios)在客户端导出word文档的方法  # nodejs简单实现TCP服务器端和客户端的聊天功能示例  # node.js中express模块创建服务器和http模块客户端发请求  # 解决Node.js mysql客户端不支持认证协议引发的问题  # node获取客户端ip功能简单示例  # 服务端  # 客户端  # 自定义  # 为例  # 后端  # encryption  # exports  # function  # require  # util  # var  # utility  # alert  # start  # sayHello  # url  # fun  # jsStr  # query  # isSafe 


相关文章: 如何在景安云服务器上绑定域名并配置虚拟主机?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  定制建站方案优化指南:企业官网开发与建站费用解析  建站主机无法访问?如何排查域名与服务器问题  做企业网站制作流程,企业网站制作基本流程有哪些?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  c# 在ASP.NET Core中管理和取消后台任务  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  如何快速完成中国万网建站详细流程?  如何选择网络建站服务器?高效建站必看指南  建站之星北京办公室:智能建站系统与小程序生成方案解析  定制建站是什么?如何实现个性化需求?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  建站之星安装需要哪些步骤及注意事项?  代刷网站制作软件,别人代刷火车票靠谱吗?  如何使用Golang安装API文档生成工具_快速生成接口文档  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  全景视频制作网站有哪些,全景图怎么做成网页?  如何正确下载安装西数主机建站助手?  宝塔面板如何快速创建新站点?  网页设计与网站制作内容,怎样注册网站?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  如何用美橙互联一键搭建多站合一网站?  音响网站制作视频教程,隆霸音响官方网站?  ,巨量百应是干嘛的?  Android自定义控件实现温度旋转按钮效果  建站之星在线客服如何快速接入解答?  如何基于PHP生成高效IDC网络公司建站源码?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  如何快速搭建虚拟主机网站?新手必看指南  建站之家VIP精选网站模板与SEO优化教程整合指南  深圳网站制作案例,网页的相关名词有哪些?  大同网页,大同瑞慈医院官网?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何在IIS中新建站点并配置端口与物理路径?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  北京专业网站制作设计师招聘,北京白云观官方网站?  音乐网站服务器如何优化API响应速度?  黑客如何利用漏洞与弱口令入侵网站服务器?  jQuery 常见小例汇总  如何通过万网虚拟主机快速搭建网站?  家具网站制作软件,家具厂怎么跑业务?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  ppt制作免费网站有哪些,ppt模板免费下载网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。