CSS文件加密保护
原文链接:http://www.feeldesignstudio.com/2013/08/cssencryption
很多Web设计师都想保护自己辛苦写成的CSS文件,但是基于众所周知的原因,我们的CSS是无法加密的。这篇文章主要是给出一个障眼的方法,让菜鸟知难而退即可。
思路其实非常的简单,就是将部分字符转为Unicode编码,比如下面的css文件:
@import "style.min.css";
经过转换变为:
@\0069\006d\0070\006f\0072\0074"\0073\0074\0079\006c\0065.\006d\0069\006e.\0063\0073\0073";
当然也可以随便的去掉一个或两个0:
@\0069\6d\070\6f\0072\074"\073\74\79\6c\0065.\06d\69\006e.\063\73\0073";
这样的话,一般人也懒得去看你的CSS代码了。下面是一段CSS代码:
body { font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; font-size:14px; line-height:1.6; color:#333333; background-color:#ffffff; }
“加密”后的代码:
\0062\006f\0064\0079 { \0066\006f\006e\0074-\0066\0061\006d\0069\006c\0079:"\0048\0065\006c\0076\0065\0074\0069\0063\0061 \004e\0065\0075\0065"\002c\0048\0065\006c\0076\0065\0074\0069\0063\0061\002c\0041\0072\0069\0061\006c\002c\0073\0061\006e\0073-\0073\0065\0072\0069\0066; \0066\006f\006e\0074-\0073\0069\007a\0065:\0031\0034\0070\0078; \006c\0069\006e\0065-\0068\0065\0069\0067\0068\0074:1.6; \0063\006f\006c\006f\0072:#\0033\0033\0033\0033\0033\0033; \0062\0061\0063\006b\0067\0072\006f\0075\006e\0064-\0063\006f\006c\006f\0072:#\0066\0066\0066\0066\0066\0066; }
在开发工具中看到的是:
挺唬人的,不过不到万不得已,不要这样做,开发人员的心应该是开源的。
注意:在网上有一些文章提到在CSS文件中插入”\0″,”\00″,”\000″的方法,这个现在已经不再适用。
附一个转码的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等关键字,这个就不一一例举了。