原文链接:http://www.feeldesignstudio.com/2013/08/cssencryption
这是一个二次转载的文章,最初的文章已经没了,挂上面纪念下
很多Web设计师都想保护自己辛苦写成的CSS文件,但是基于众所周知的原因,我们的CSS是无法加密的。这篇文章主要是给出一个障眼的方法,让菜鸟知难而退即可。
思路其实非常的简单,就是将部分字符转为Unicode编码,比如下面的css文件:
CSS
经过转换变为:
CSS
@\ 0069 \ 006 d\ 0070 \ 006 f\ 0072 \ 0074 "\0073\0074\0079\006c\0065.\006d\0069\006e.\0063\0073\0073" ; |
当然也可以随便的去掉一个或两个0:
CSS
@\ 0069 \ 6 d\ 070 \ 6 f\ 0072 \ 074 "\073\74\79\6c\0065.\06d\69\006e.\063\73\0073" ; |
这样的话,一般人也懒得去看你的CSS代码了。下面是一段CSS代码:
CSS
body { font-family : "Helvetica Neue" , Helvetica , Arial , sans-serif ; font-size : 14px ; line-height : 1.6 ; color : #333333 ; background-color : #ffffff ; } |
“加密”后的代码:
CSS
\ 0062 \ 006 f\ 0064 \ 0079 { \ 0066 \ 006 f\ 006 e\ 0074 -\ 0066 \ 0061 \ 006 d\ 0069 \ 006 c\ 0079: "\0048\0065\006c\0076\0065\0074\0069\0063\0061 \004e\0065\0075\0065" \ 002 c\ 0048 \ 0065 \ 006 c\ 0076 \ 0065 \ 0074 \ 0069 \ 0063 \ 0061 \ 002 c\ 0041 \ 0072 \ 0069 \ 0061 \ 006 c\ 002 c\ 0073 \ 0061 \ 006 e\ 0073 -\ 0073 \ 0065 \ 0072 \ 0069 \ 0066 ; \ 0066 \ 006 f\ 006 e\ 0074 -\ 0073 \ 0069 \ 007 a\ 0065: \ 0031 \ 0034 \ 0070 \ 0078 ; \ 006 c\ 0069 \ 006 e\ 0065 -\ 0068 \ 0065 \ 0069 \ 0067 \ 0068 \ 0074: 1.6 ; \ 0063 \ 006 f\ 006 c\ 006 f\ 0072: #\ 0033 \ 0033 \ 0033 \ 0033 \ 0033 \ 0033 ; \ 0062 \ 0061 \ 0063 \ 006 b\ 0067 \ 0072 \ 006 f\ 0075 \ 006 e\ 0064 -\ 0063 \ 006 f\ 006 c\ 006 f\ 0072: #\ 0066 \ 0066 \ 0066 \ 0066 \ 0066 \ 0066 ; } |
在开发工具中看到的是:
挺唬人的,不过不到万不得已,不要这样做,开发人员的心应该是开源的。
注意:在网上有一些文章提到在CSS文件中插入”\0″,”\00″,”\000″的方法,这个现在已经不再适用。
附一个转码的Javascript方法:
JavaScript
functionstring_as_unicode_escape(input){ functionpad_four(input){ varl=input.length; if (l==0) return '0000' ; if (l==1) return '000' +input; if (l==2) return '00' +input; if (l==3) return '0' +input; returninput; } varoutput= '' ; for (vari=0,l=input.length;i<l;i++) output+= '\\' +pad_four(input.charCodeAt(i).toString(16)); returnoutput; } |
不过在转换的时候需要注意忽略一些特殊字符和关键字,比如#@:;.{}-之类的,还有hover、before、after等关键字,这个就不一一例举了。
以下是我自己写的
加密JS代码的网站(在线版,有免费和付费功能,都可以加密,安全性不同)
我个人来说,还是建议开源,我们应持有“部分开源的精神”。
因为网络是一个循环,只需要有1%的程序员进行加密,那么在庞大的基数下,总会轮到你,在你很需要一个很酷的JS代码的时候,却遇到了加密JS,心情是****的,虽然可以反编译解密,但是也很麻烦