当前位置:首页 » 网页前端 » 前端数据加密
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

前端数据加密

发布时间: 2022-01-25 04:26:55

A. 求助前端JS都是用什么加密的

写过js混淆器,谈一些浅显的个人看法。个人认为,js的不可读化处理分为三个方面:压缩(compression)、混淆(obfuscation)和加密(encryption)。(不可读化处理,这是我自己发明的术语,一切会增加代码不可读性的代码转换,都可以这么叫,“增加代码不可读性”可能是代码转换的结果或者目的).1.压缩这一操作的目的,是让最终代码传输量(不代表代码量,也不代表文件体积)尽可能小。压缩js的工具,常见的有:YUICompressor、UglifyJS、GoogleClosureCompiler等。通常在代码压缩的过程中,只改变代码的语法,代码的语义和控制流不会有太大改变。常见做法是把局部变量缩短化,把一些运算进行等价替换等。代码压缩对于代码保护有一些帮助,但由于语义和控制流基本没变,起不了太大作用。在压缩层面上,代码不可读只是一种附带伤害,不是最终目的。2.混淆这一操作的目的,是让代码尽可能地不可读,主要用作代码保护。让代码不可读,增加分析的难度,这是唯一目的。混淆过后文件体积变大一倍也没关系,代码量变多也没关系,运算慢50%也没关系。常见的做法有:分离常量、打乱控制流、增加无义代码、检查运行环境如果不对就罢工,等等。在混淆层面上,代码不可读是最终目的。值得一提的是,GoogleClosureCompiler的AdvanceLevelCompression会压缩类和对象的成员,其压缩结果很难分析,也可以认为是一种混淆,但兼容性不太好。广告时间:我写的js混淆器,中文名叫“看起来很厉害的JS编译器”,英文名叫做TheImpressiveJS.Segment.Compiler,看起来很厉害的JS编译器。3.加密说实话我很难对加密做一个定义,因为加密在Web界有太多歧义了。有加密就有解密,意味着加密操作可逆,密文可以明文化。就这样看来,在Web界,可以称之为加密的东西包括:HTTPS传输、JavaScript实现对称加密或者不对称加密等等。这样看来,不可逆的代码压缩和混淆就不能列入加密这个范畴了。非要找一个可以称之为加密,又经常被人误解为压缩和混淆的东西,DeanEdwards的DeanPacker/Unpacker可以拿来做个例子。比如我们把varnum=1;alert(num);输入DeanPacker,pack一下,得到这么一串东西,是不是看着非常像被压缩和混淆过的代码?把上面那串意义不明物拿来unpack一下,得到了原文。实际上DeanPacker只是对源码进行了一个字符串变换,没有深入到代码语法层面,你可以拿"Helloworld,你好师姐"来试试。用OnlineJavaScriptbeautifier能轻松把这串东西还原为“Helloworld,你好师姐”。可以看出,代码加密意味着:将代码明文进行可逆的变换(加密),生成密文;将密文进行逆变换(解密),可以还原明文;最终运行环境运行的是解密代码。结语实际上大家对压缩、混淆、加密这三个概念还是挺不清晰的,我在这里说一些个人见解,希望有帮助。在现实项目中,我是多种手段结合的:对于不需要做代码保护的项目,比如个人博客,做代码压缩,加快载入速度,这就够了。对于需要做一些代码保护,防止抄袭的项目,可以在源码中加入一些开发者的信息和防护代码,然后混淆和压缩。很不幸的是,我这方面总是做得不太好,防君子防不了小人啊哈哈。对于需要严格加密的项目,可以用混淆、压缩、加密、签名检查等多种手段,这我就不清楚了,等大婶来补充。

B. Web前端密码加密是否有意义

在前端对密码做一次MD5,看起来是防止明文传输了,事实上只有一种情况下它可以提高用户的安全性,那就是用户在别的网站上也用和你的网站一样的密码。并且在任何情况下都提高不了你自己网站的安全性。前面说的传输过程、内存里、日志里……这些地方没有明文密码,其实都只能保护用户本身的利益,对于自身服务的安全性是没有提高的。因为,既然传输过程不是加密的,那么包随便发,至于发一个abc123,还是发一个,对你的程序没有任何的区别,这时候你的程序都是小绵羊。这个过程可以看做,你的用户都用了32位字符串的密码,如是而已。从事实意义上讲,在所有网站上用同样密码的用户非常多,所以可以勉勉强强的说,这是有一丁丁点的意义的。但即使在前端做了签名,因为hash暴露了,也还是很容易被撞库。但是,对安全性没有提高,就不做了吗?当然要做,因为要应付审计。

C. 前后分离java传到前端的数据怎么加密

你觉得前端用这个数据用来干什么?你把明文送给前端的时候,加密的意义就已经不大了。

D. 前端加密传递信息时,有什么好的方法

试试铁马加密软件,可以试用,并提供针对性的加密服务。
铁马加密16年加密经验,能为企业提供针对性的文件加密解决方案,防止图纸、文件、源代码,数据库等等商业秘密非法外泄。具有后台自动运行、不影响工作、无需员工配合等特性。
加密场景包括内部流通、外发、员工出差、服务器存储等。

E. 在网页前后端传json的时候,一般用加密么比如我从前端传一个id跟一个value给后端怎么处理呢

格式:{id: value}详细加密代码参照网络经验:https://jingyan..com/article/6f2f55a114b012b5b93e6cc4.html

F. 如何在前端调用js对密码进行加密

加密和解密原则上都应该在后台完成才合乎常理,如果在前端加密,就好比在众目睽睽之下化妆易容,然后声称自己是另一个人一样,没意义啊。
如果一定要在前端加密,可以这样:
<input type="submit" name="submit" value="注册" onclick="var pwd=document.getElementsByName('password')[0];pwd.value=md5(pwd.value);"/>

G. Web前端密码加密是否有意义

密码在前端加密完全没有意义,对密码系统的安全性不会有任何提高,反而会引发不必要的麻烦。首先,做前端开发的人需要知道,前端系统的控制权是完全在用户手里的,也就是说,前端做什么事情,用户有完全的控制权。假设如同 @陈轩所说,前端做过了md5,后台就不用做了,这个做法会有什么后果?如果某一天,这个系统的数据库泄露了,黑客就直接拿到了每个用户的密码md5值,但此时,由于黑客知道密码是在前端进行哈希的,所以他不需要爆破出该md5对应的原文是什么,而是直接修改客户端向服务器发出的请求,把密码字段换成数据库中MD5就可以了,由于与数据库中记录一致,直接就会登录成功。这跟直接存储明文密码没有任何区别!!!所以不管前端是不是加密了密码,后台使用安全的哈希算法对内容再次转换是非常有必要的。(MD5可不行,要用bcrypt,我之前回答过一个类似的:随着显卡性能的高速发展,目前的快速Hash算法是否已经变得不够安全了?)这个回答还有一个人赞同,希望大家别被错误答案误导了。另外一个答案 @林鸿所说,在非安全HTTP连接上,可以防止原始密码被窃听。但问题在于由于你的登录系统接受的哈希过的密码,而不是原文,窃听者根本不需要原始密码,只要通过哈希结果就可以伪造请求登录系统。这样做只能防止被窃听到原文的密码被攻击者用在社会学攻击上,而不能改善该网站的安全性。所以不管前端是不是加密了密码,使用HTTPS安全连接进行登录都是非常有必要的。以上我说的两点,合起来看就是:不管前端是否加密了密码,都不能以此为假设,让后端设计的安全等级下降,否则就会有严重的安全问题。实际上,前端进行密码加密,可以看做帮助用户多进行了一次原文的转换,不管用了什么加密算法,算出来的结果都是密码原文,你该如何保护用户的原始密码,就该如何保护此处的加密结果,因为对你的登录系统来说,它们都是密码原文。以上这些,说明了密码加密是没有什么意义的,接下来,我要说明前端加密会带来什么问题。有些人会认为前端进行了加密,可以降低后台的安全性需求,这种错误的观念会造成系统的安全漏洞。实际上,你不能对前端做任何的假设,所有跟安全相关的技术,都必须应用在后台上。前端进行加密会造成页面需要js脚本才能运行,那么假设你的系统需要兼容不能运行js的客户端,就必须再设计一个使用原文的登录接口。由于前端是不是加密,所有安全机制都必须照常应用,所以为系统增加这样的复杂性是完全没必要的,即使传输明文密码,只要正确使用了HTTPS连接和服务器端安全的哈希算法,密码系统都可以是很安全的。