首先我们来假设一个情况。
我们要做一个flash,里面存了一段话,只想给知道密码的人看。通常的做法是检测用户的输入是否等于密码,然后显示。但是由于Flash是开放结构,所以swf文件可以反汇编然后看到密码,这时候就可以非法的看到要保护的东西了。
但是如果通过一个不可逆的算法把密码加密,然后存在swf里面。然后把用户输入的密码也同样加密,然后比对加密以后的字串是否相等就可以了。因为swf里面保存的密码是不可逆的嘛~~
不可逆的加密算法有很多种,最流行的就是md系列了,现在的是md5。md5可以计算认可字串的特征,然后归结到一个32字节长的字串里面,源字串一点点的改动就会造成特称字串巨大的变化。
据个例子:
"abc"的md5是900150983cd24fb0d6963f7d28e17f72
"abb"的md5是ea01e5fd8e4d8832825acdd20eac5104
为什么说不可逆呢?
据个例子
问题:1000是由什么数字相加而成的呢?
答案是不知道~
如果说是两个数字,那么我们可以有1+999或者500+500或者……但是三个、四个、直到n个数字呢?也就是说我们不可能知道原来的数字是什么,猜中的机会很小。而md5也是同样的原理,将每个字符的特征值相加再相加,自然就很难猜到原来是什么东西了~
那么我们有了密码检测了~着时候需要一个可逆的加密算法来处理我们要保存的东西,因为要还原嘛~~这类算法很多,我选择了较流行的des算法
des函数的定义是这样的
des ("密码", "加密文本", 模式)
模式=1的时候,des返回加密后的值
模式=0的时候,des返回解密后的值
但是由于des返回的值不一定是通用字符集里面的,所以我就做了一点处理,将des的值转成16进制字串,防止错误的产生。
道理很明白了,怎么用呢~~首先,我们来创建密码的md5值,使用下面的函数:
>/*E-mail: tsxy@21cnMo;
这时候,再加入另外一段代码(拷贝代码的时候请注意有些折行需要更改--颜色较淡的部分):
functi;
这时候你的作品就差不多完成了
然后你要做的就是将用户输入的密码读入,假设你读入到了input这个变量里面。那么程序就应该写
if(md5(input)==pass){ trace(unHex(des (pass, test, 0)));}else{
trace("密码错误");}
怎么样?其实总共要写得代码就只有七行~~很简单吧。
到底有多安全?我只敢说和钱没有关系就很安全。
欢迎您访问www.5ucms.org
上一篇:5ucms帮助Flash MX 视频导入功能详解 下一篇:5ucms培训,FLASH -- 关于变量的问题FLASH -- 关于变量的问题 |
|
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。 5ucms教程,Flash本地加密的关键词: |