RSA文件加密软件的设计和实现方法
针对基于JAVA的RSA文件加密软件,对其要求进行总结:①能够根据需求生成指定位数的非对称密钥。②支持密钥的保存和加载,将密钥保存为纯文本格式。③能够使用RSA算法对任意文件进行加密,生成的加密数据为纯文本。④支持加载已加密的文件,并使用指定密钥解密还原出原始文件。⑤具备完整的提示信息、舒适的操作体验和雅观的图形界面。首先要说明的是,目前的计算机还无法立即生成非常大的随机素数,一般情况下,获取100%准确的大素数通常是通过查找已经计算好的素数表来实现的。然而,使用素数表的方式可能会给RSA加密带来安全隐患,因为攻击者如果获得了密钥生成所使用的素数表,将大大降低攻破RSA加密的难度。因此,本程序原本采用素数表的方式生成密钥,但后来考虑到安全性问题,改为了随机计算生成的方式。这样,在短时间内获得100%准确的大素数变得非常困难,只能以尽可能高的概率获得一个大素数。经过前面提到的准备工作,本工程将寻找素数的功能放置在Prime_factory_san类中。外部只需调用该类实例的成员方法vlong find_prime(vlong & start),即可使用大数进行素数的寻找。
下载地址
用户评论