前端

前端加解密方案探讨

假装没事ソ 提交于 2020-03-12 05:58:50
最近在做一个node项目,需要对前端传递给node端的敏感数据进行加密,并在node端对该加密数据进行解密;因为在做node项目之前,与后端配合开发过类似的需求,即前端加密后端解密;所以就尝试采用RSA非对称加密算法来实现。由于第一次采用RSA来完成加解密的整个过程,遇到了不少坑;不过由于种种原因,最后采用了AES的加密方式;下面就来说说前端加解密实现方案。 RSA加解密算法 实现思路 当然首先想到采用的加解密算法就是 RSA ,其关键在于算法的 公钥/秘钥 。其主要用法: 算法生成一份公钥和私钥,其中公钥是公开的,所有人都可以知道,私钥是保密的 用公钥解密,要用私钥解密 于是,基于RSA算法来实现加解密,找到了对应的浏览器端库 jsencrypt 和node端的库 node-rsa 来实现具体的功能。 具体实现思路: 使用 jsencrypt 在前端实现用公玥加密,使用 node-rsa 在node端用私钥解密。 遇到的坑 由于采用的是RSA算法,所以需要前后端约定具体的公钥和私钥。怎么生存公钥私钥呢? 于是根据 jsencrypt 库的介绍,使用 openssl 方式来生成对应的公钥和私钥。于是生成的公钥和私钥大概是如下样子: // 私钥 -----BEGIN RSA PRIVATE KEY-----

模块化

折月煮酒 提交于 2020-03-12 04:50:44
1. 前端模块化 Js模块化提供了三种规范 1,commonjs 规范 代表就是nodejs 适合后台开发 因为是同步的 服务器的运行比较快等待时间不长,commonjs不适合用于前端,前端的客户端是浏览器,浏览器追求异步加载,浏览器不能等待太长时间。 2,前端模块的规范是Amd规范 代表就是requirejs,他是异步的,很多前端框架都是用的amd规范,比如jquery angular等 3,第三个模块化规范是而es6 2.模块化的操作 1.Commonjs的操作 所有的模块化都是两个方向,暴露模块接口和引入模块。 Module.exports={} 暴露的是一个叫exports的对象 Require() 引入一个模块 这是后台的规范,在nodejs环境可以直接运行,但是在客户端不能直接运行,需要对文件打包解析。Webpack gulp 浏览器是一个对象,在 window 对象   在 window 中查找   方法也是属性,属性值是 function   作用域:     当执行 js 代码时,浏览器会给一个全局环境,叫window,作用域分两部分,一个是内存部分,一个是执行部分,代码从上到下执行,碰到变量,   就会在 window 中(内存部分) 查找这个变量是否存在,存在便看赋值了没有,赋值了便是后面的值,没赋值 undefined , 没声明这个变量 xxx is

网页制作之前端简介

二次信任 提交于 2020-03-12 04:25:56
  网页制作的标准是WEB标准,它是一个系列的标准,大部分的标准是由W3C制定的,还有一部分标准由ECMA制定。   W3C--万维网联盟(结构标准和表现标准)   ECMA--欧洲电脑厂商联合会(行为标准)   最通常的WEB标准是由 结构(HTML,XHTML),表现(CSS),形式(JS) 三个方面构成。   这三个方面也就是网页的前端的基本知识结构:   HTML--超文本标记语言     XHTML--可扩展的超文本标记语言;   CSS--层叠样式表;   JS--JavaScript ,是为了解决服务器终端的脚本语言;(这里与JAVA有本质的区别)   简单来讲,HTML定义的网页的基本结构,即网页的大体框架;       CSS则给这个框架里的每个小的单元进行排版;       而JS则使其更加的美观,同时对能及时响应用户的操作,对提交表单做即时的检查。       (Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。) 来源: https://www.cnblogs.com/21-forever/p/10842338.html

如何正确学习web前端流程以及如何找工作

孤街浪徒 提交于 2020-03-11 20:08:38
我给你解释一下web前端工作是做啥的,Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/Flash等各种Web技术进行客户端产品的开发。完成客户端程序(也就是浏览器端)的开发,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验。 个人背景: 首先我的前端是自学的,而那个时候并没有前端的称呼,那个时候叫网页制作,所以我们当时是学Java,所谓的web前端其实就是顺带学的,并没啥难度,我学编程是用了大概一年的时间,因为当时在学校时间还是比较多的,所以我建议大家不要想着速成,学任何一门手艺都需要一个过程,这是我个人的建议,而且根据我目前对于行业的了解,速成找工作还是比较困难的,就培训来说,很多人培训出来都找不到工作,并不是培训教的不好,实在时间太短,只有四个月时间。 几点建议: 1.作为一个初学者,你必须明确系统的学习方案,我建议一定有一个指导的人,全靠自己学,放弃的几率非常大,在你对于web前端还没有任何概念的时候,需要一个人领进门,之后就都靠自己专研,第一步就是确定web前端都需要哪些内容,并且在多少时间内学完,建议时间6个月保底。 2.视频为主,书为辅。很多初学者在学习前端的时候非常喜欢去买书,但是最后的结果是什么?看来看去什么都不会写,所以在这里小编给大家提醒

后台数据传给前端(数据隐蔽)

老子叫甜甜 提交于 2020-03-11 12:03:29
文章目录 数据隐藏: @JsonIgnore: @JsonProperty: @JsonIgnoreProperties: 日期: 排序: 数据隐藏: 我们在进行数据返回的时候肯定是有些属性不希望前端可以获取到,或者是某些数据为空的时候前端要求不必进行回传,那么这时候我们就可以进行属性的隐藏。 @JsonIgnore: 使用在某个属性上,这样在序列化和反序列化的时候都会忽略这个属性,最直接的效果就是返回的JSON属性是没有这个属性的,一般作用于密码这系列的属性。@JsonInclude:使用在某个属性上,配合它的属性Value=JsonInclude.Include.NON_NULL,表示的是如果这个属性的属性值为空那么在返回前端的时候不可见。 @JsonProperty: 使用在某个属性上,这个注解有两个作用,第一是修改返回JSON数据的时候key值为value指定值,第二个作用是配合属性access=JsonProperty.Access.WRITE_ONLY表示属性只可以进行序列化而不能进行反序列化,直观效果就是返回的数据没有该属性。 @JsonIgnoreProperties: 作用在类声明处,它和@JsonIgnore注解的区别就是可以对多个属性作用,直接在value属性后面使用大括号逗号隔开即可,它的ignoreUnknow属性为true表示忽略未定义的属性。 日期:

整个行业都缺Web前端工程师,你还在问Web前端工作好找吗?

和自甴很熟 提交于 2020-03-11 09:53:06
现在,几乎整个互联网行业都缺前端工程师,不仅在刚起步的创业公司,对上市公司乃至巨头这个问题也一样存在。 据统计,国外的前端开发人员和后端开发人员比例约1:1,但是在国内比例却在1:3以下,Web前端开发职位人才缺口巨大。前端工程师的发展之路十分有“钱”景。 每天,HR 群都有人在吐槽招不到前端工程师。实话说对这些需求,高级招聘人员也无能为力,因为在供不应求的前端招聘市场上,优秀的前端工程师才是有话语权的那一方。 但是,市场上优秀的前端工程师却相对较少,全世界范围看都是个难题。那造成优秀Web前端工程师稀少的原因有哪些呢? 大量糟糕Web前端工程师的存在,扰乱了市场。由于Web前端工程师的入门门槛非常低,JS、CSS、HTML并不是很难入门掌握的语言,似乎只要花一点时间,谁都可以通过网上教程和书本学会它,Web前端工程师市场就是被这些浅尝辄止的家伙搞坏的。 糟糕的Web前端工程师是这样做事的: 1、滥用JS库,因为他们实际上并不了JS的内部(e.g.一切都用jQuery); 2、滥用JS插件,抄别人的代码哪怕自己根本读不懂(e.g.jQuery.doParallaxPls.js); 3、给Web应用程序添加CSS框架,却只用到CSS/JS的5%,没有看到任何的需求、设计或者比较和评价; 4、认为只要添加了CSS框架,网站就可以“有求必应”; 5、一边在说着“响应式Web设计”

java做导出提示

我只是一个虾纸丫 提交于 2020-03-10 20:18:35
总体的思路: 是在点击导出按钮时获得一个时间戳并把时间戳填充到form表单中发送给后台,后台响应成功后把发送的时间戳设置为cookie值,前端实时监测cookie值和前端的时间戳是否相等,相等就说明文件导出成功,提示导出结果。 难点:流写入到浏览器中,但是没有办法判断浏览器什么时候下载完成。 具体看代码实现: 前端表单提交提交date var date=new Date().getTime();//获取时间 html.push('<input type="text" name="date" value="'+date+'" />');//添加到表单 $('#exportForm').submit().remove();//表单提交 后端导出方法时候,加入一段添加cookie的逻辑: response.setHeader("Content-type", "text/html;charset=UTF-8"); response.setContentType("application/vnd.ms-excel"); Cookie cookie = new Cookie("D" + date, date + "," + size);//将时间戳设置到cookie中 cookie.setMaxAge(20000);//设置cookie生存时间,可调小一点 response.addCookie

现在Web前端的发展趋势和行业前景,还能转行学习前端开发吗?

感情迁移 提交于 2020-03-10 16:36:43
2020年还能转行学web前端开发吗?这是很多人在网络上搜索的问题。及其原因,还是因为目前网络上充斥着前端饱和的说法,这让不少人怀疑还能不能转行web前端,目前程序员行业前景很好,而web前端的前景也不差。 不否认初级前端程序员供给泛滥,待遇恶化,发展遇冷。但是当你坚持到中高级web前端工程师时,就会越来越吃香了。这是因为前端技术栈的不断更新,效率提高,同样的前端人数,能完成比以前更多的职责范围。在不少企业,1个优秀的前端工程师就能搞定Web和移动端的开发,甚至负责一部分后端。因此只要你能忍受住寂寞,努力磨砺你的技术,那么在步入中高端web前端开发工程师后,就业薪资肯定是可以达到你的预期的。 接下来,小编来跟大家分享一下2020年Web前端的发展趋势如何?熟悉web的小伙伴们都了解,在2018年是前端技术的发展相对稳定的一年,就前端主流技术框架的发展而言,前几年里发展极快,在填补原有技术框架空白和不足的同时也渐渐趋于成熟。 未来前端在已经趋向成熟的技术方向上面将会慢慢稳定下来,并进入迭代优化阶段,例如语言标准、前端框架等。 那么2020年Web前端的发展趋势如何?让我们一起来看一看 1.新规范的更新与稳定 前端新标准和草案在不断更新,HTML、CSS、Javascript标准也在渐渐完善,尽管这些新的规范最终会淘汰旧的规范,新的项目也会以最新的标准作为开发依据,但要完全废弃旧规范