173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

js对称加密_什么是js加密

keros@mark 2022-07-20 资讯中心

分享是一种快乐,在这里和大家一起学习js对称加密_什么是js加密的知识,不要忘记关注本站哦。

www.keroschip.com

请高人指点一段javascript加密算法的思想...急!!!!

这个加码程序是利用随机码进行加密的,从我初步的判断就是利用了一个随机数而已,然后将这个随机数又用8位16进行在密文的最后累上的。所以很容易找到这个随机的干扰码的,对于加密的过程,写的还不错,但加密的粒度太低,也就是只是对密匙位数进行加密,不过想逆它一般还是很难的,但好在粒度低,就算是用暴破的方法也是很快可以解密的。前提是密匙的不安全性。反算可以通过255次+8421505次就可计算出你的密码。还是由于粒度低,密文碰撞性比较大。好像没有很好的处理。str就是这时原密匙,而pwd则是密码,待加密字符。而生成出来的就是明文可以在网上任何传播的。

这个程序基本上实现了加密的几个要素。思想不错,便由于粒度低,再加上本身JS的不安全性,所以还是比较脆弱的。至于说算法,在密码学上加密的算法本身就是公开的。一楼的,JS暴出来又如何?

这个加密方法也有它自身的好处,SHA1和MD5都是固定位数的加密,而这个是一个动态的长度不固定的加密,如果你愿意,把你的密匙设为8位,则加密的内容是16+8位,当然,如果是设20位时加密的过程则出现48位的。而不是像MD5的16位和32位那么固定。

不过提到了DES和TDES,你不妨借用它们的思想,将加密过的内容,再以同样的方式,再样的密匙再加密一次或二次,破解难度无疑提高了。

一般加密中很少使用^运算的。可以考虑使用|或者是运算。因为^运算有一个特点就是:A^C=B时,则B^C=A,同时A^C=B,所以降低的破解难度!

sorry,由于上次看这个东西时间短,所以说错了点,不过这个加密还是很不错的。str是待加密的密文,而函数的返回值是加密过的明文,PWD才是密匙,由于对这个算法很感兴趣,便下从回家时看了看,原来这个是一个对称加密的方式。写的很好,如果密匙不是泄露的原因,还是要过255次+8421505次的试验才可得到正确的结果,所以说,加密的粒度低。便由于是动态的,且由于程序短小适合对于大量的文本加密,那么破解就变得不那么容易了。首先一次我还是说,加密算法与解密算法是公开的,因为生成明文的过程不依赖于算法。而是依赖于密匙的。只在密匙不泄露就可以了。像这类的算法本身都是公开的也用不着去暴JS代码的。所以根据其加密算法,我已经写出了解密的过程。也就是说你可以将一篇文本加密后发给我,然后只要告诉我密匙,我就能知道具体的内容了。在加密学中,密匙的才是解密的,所以, 如果算法中可以有逆过程时是错误的加密方式,这样的加密过于依赖算法。而想逆一下要多长时间才是衡量一个加密的强度的。比如这个过程要100年(要计算机运算的时间)才能逆,那么相对目前来说是相当安全的。而这个加密却是能对大量文件进行加密的。所以速度上还是很好的,这里我们不能以非对称加密方式去衡量它的安全性。

JS加密方法

本文一共介绍了七种方法:

一:最简单的加密解密

二:转义字符""的妙用

三:使用Microsoft出品的脚本编码器Script Encoder来进行编码 (自创简单解码)

四:任意添加NUL空字符(十六进制00H) (自创)

五:无用内容混乱以及换行空格TAB大法

六:自写解密函数法

七:错误的利用 (自创)

在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE运行的JAVASCRIPT代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西也挺累的......^*^

但我们也应该清楚地认识到因为JAVASCRIPT代码是在IE中解释执行,要想绝对的保密是不可能的,我们要做的就是尽可能的增大拷贝者复制的难度,让他知难而退(但愿~!~),下面我结合自己这几年来的实践,及个人研究的心得,和大家一起来探讨一下网页中JAVASCRIPT代码的加密解密技术。

以加密下面的JAVASCRIPT代码为例:

SCRIPT LANGUAGE="JavaScript"

alert("《黑客防线》");

/SCRIPT

一:最简单的加密解密

大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:

alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点JAVASCRIPT代码重新把它加密如下:

%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

呵呵!如何?这次是完全都加密了!

当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:

SCRIPT LANGUAGE="JavaScript"

var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");

eval(code)

/SCRIPT

是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵

二:转义字符""的妙用

大家可能对转义字符""不太熟悉,但对于JavaScript提供了一些特殊字符如:n (换行)、 r (回车)、' (单引号 )等应该是有所了解的吧?其实""后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"141"或"x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:

八进制转义字符串如下:

SCRIPT LANGUAGE="JavaScript"

eval("1411541451621645042u9ED1u5BA2u9632u7EBF425173")

/SCRIPT

十六进制转义字符串如下:

SCRIPT LANGUAGE="JavaScript"

eval("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")

/SCRIPT

这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:

SCRIPT LANGUAGE="JavaScript"

alert("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")

/SCRIPT

就会弹出对话框告诉你解密后的结果!

如何正确的进行JS加密分析

首先,MD5不是加密算法,是签名算法,哎,到底是有多少国人被毒害了呀。 另外,只要是可以由软件实现的加密算法,js都能使用,只是有效率问题, 一般的 非对称算法,使用的资源都很庞大,所以js很少有。 而对称的加密算法……,由于js是对用户可见

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

写过 js混淆器,谈一些浅显的个人看法。

个人认为,js的不可读化处理分为三个方面:压缩(compression)、混淆(obfuscation) 和加密(encryption)。 (不可读化处理,这是我自己发明的术语,一切会增加代码不可读性的代码转换, 都可以这么叫,“增加代码不可读性”可能是代码转换的结果或者目的).

1. 压缩

这一操作的目的,是让最终代码传输量 (不代表代码量, 也不代表文件体积)尽可能小。压缩js的工具,常见的有:YUI Compressor、UglifyJS、Google Closure Compiler 等。

通常在代码压缩的过程中,只改变代码的语法,代码的语义和控制流不会有太大改变。

常见做法是把局部变量缩短化,把一些运算进行等价替换等。代码压缩对于代码保护有一些帮助,但由于语义和控制流基本没变,起不了太大作用。

在压缩层面上,代码不可读只是一种附带伤害,不是最终目的。

2. 混淆

这一操作的目的,是让代码尽可能地不可读,主要用作代码保护。

让代码不可读,增加分析的难度,这是唯一目的。混淆过后文件体积变大一倍也没关系,代码量变多也没关系,运算慢50% 也没关系。

常见的做法有:分离常量、打乱控制流、增加无义代码、检查运行环境如果不对就罢工,等等。

在混淆层面上,代码不可读是最终目的。

值得一提的是,Google Closure Compiler 的 Advance Level Compression 会压缩类和对象的成员,其压缩结果很难分析,也可以认为是一种混淆,但兼容性不太好。

广告时间:我写的 js混淆器,中文名叫 “看起来很厉害的 JS 编译器”, 英文名叫做 The Impressive JS.Segment.Compiler , 看起来很厉害的 JS 编译器 。

3. 加密

说实话我很难对加密做一个定义,因为加密在Web界有太多歧义了。

有加密就有解密,意味着加密操作可逆,密文可以明文化。

就这样看来,在Web界,可以称之为加密的东西包括:HTTPS传输、JavaScript实现对称加密或者不对称加密等等。

这样看来,不可逆的代码压缩和混淆就不能列入加密这个范畴了。

非要找一个可以称之为加密,又经常被人误解为压缩和混淆的东西,Dean Edwards 的 Dean Packer/Unpacker 可以拿来做个例子。

比如我们把 var num=1;alert(num);

输入 Dean Packer,pack 一下,得到这么一串东西,是不是看着非常像被压缩和混淆过的代码?

把上面那串意义不明物拿来 unpack 一下,得到了原文。

实际上 Dean Packer 只是对源码进行了一个字符串变换,没有深入到代码语法层面,你可以拿 "Hello world, 你好师姐" 来试试。

用Online JavaScript beautifier 能轻松把这串东西还原为 “Hello world, 你好师姐”。

可以看出,代码加密意味着:将代码明文进行可逆的变换(加密),生成密文;将密文进行逆变换(解密),可以还原明文;最终运行环境运行的是解密代码。

结语

实际上大家对压缩、混淆、加密这三个概念还是挺不清晰的,我在这里说一些个人见解,希望有帮助。

在现实项目中,我是多种手段结合的:

对于不需要做代码保护的项目,比如个人博客,做代码压缩,加快载入速度,这就够了。

对于需要做一些代码保护,防止抄袭的项目,可以在源码中加入一些开发者的信息和防护代码,然后混淆和压缩。很不幸的是,我这方面总是做得不太好,防君子防不了小人啊哈哈。

对于需要严格加密的项目,可以用 混淆、压缩、加密、签名检查 等多种手段,这我就不清楚了,等大婶来补充。

产品的开发快则一个月,慢则一年,那么如何杜绝市面上各种山寨也成为了我们必须要关注的问题,加密芯片可以做到这点,在保障开发者权益的同时也保护了消费者权益,KEROS加密芯片作为该领域的领头者,一直在尽力贡献一份力。特点如下:接口:标准I2C协议接口;算法: 标准AES256 / KAS算法;特殊接口:Random Stream Cipher for Interface;工作温度:工业级 -40℃ ~+85℃;频率:400Khz;存储:2K字节EEPROM(可选);电压:1.8V~3.6V;封装:SOT23-6,SOP8,TDFN-6。js对称加密_什么是js加密的介绍就聊到这里吧,感谢你花时间阅读本站内容,谢谢。

本文标签:js对称加密

产品列表
产品封装
友情链接