这个程序是为我的计算机信息安全课程设计而编写的,实现了基于RSA算法的文本加密功能。
本程序只用于演示,没有实用价值,主要原因是Javascript运算速度太慢,以至于我选用的质数只能小于10000,太大了,生成的密钥也会很大,对加密的时间有着直接影响。
钥匙是程序自动选取两个质数以后,计算得到的,最终的格式如下,数1,数2,其中数2是N,数1是E或者是D,一般,我们把含有E的钥匙叫公钥,含有D的钥匙叫做私钥,当然,如果你想倒过来也没关系~至于E,D,N是什么东东,您查阅一下RSA的资料,看一下计算方法就知道了~
钥匙中的数1的大小和加密或解密的时间成正比,如果你的钥匙用于加密,那么数1越大,加密所需时间也就越长。我测试了一下,选取的数1不应该超过2000,否则要等很长时间(至少能让你失去耐心),其次,要加密的文本也不要太长,建议5个字母以内(所以说没有实用价值 :P)。在加密或解密的时候,浏览器会经常询问您是否终止Javascript的运行,你只有选择继续运行,才能完成整个加密过程。
我们学校这学期开了计算机信息安全这门课,更像是科普讲座,介绍了一些常用的加密算法,对称加密,非对称加密,数字签名等等,还有防火墙,病毒防范等,给我们上课的老师叫胡春光,我很喜欢他,他知识渊博,上课语速平和,说话很有逻辑性,能用很通俗易懂的方式为我们讲课,引人入胜,而且他是个很有个性的老师,能成为他的学生真是三生有幸~
好了,以下是程序的源代码,供大家学习参考,程序没有经过优化,质量不算高,欢迎大家提出宝贵意见。
P.S:
1:程序使用了mootools框架进行开发,其实就是用mootools的方法来定义类创建对象~没有用其他的特性~
2:密钥产生页面:Keygen.htm,加密页面:encrypt.htm,解密页面:decrypt.htm
CoffeeCat
2007-12-30
http://www.cnitblog.com/Files/CoffeeCat/rsa/RSA.rar