• 基于JAVA的RSA文件加密软件的设计与实现免费源代码+LW


    2.1.1 功能分析
    经过1.2.2节的论述,我们可以将对软件的要求总结如下:
    ① 可以按要求的位数生成非对称密钥。
    ② 可以保存密钥和装载密钥,密钥保存为纯文本。
    ③ 可以用指定密钥以RSA算法加密任意一个文件,加密生成的数据为纯文本。
    ④ 可以装载加密过的文件,并用指定的密钥解密还原出原文件。
    ⑤ 提示信息完整、操作舒适、图形界面雅观
    按上述描述,给出Use Case和Statechart如图2-1。
    在这里插入图片描述
    2.1.2 工程方案选择
    结合现有的常见开发模式综合分析,有多种实现方案,下面陈述其中几种,并分析选择一种解决方案,并给出工程框架

    1. 整个工程使用java平台实现
      RSA密钥生成、RSA加密解密的功能实现十分简单,因为标准库中集成几乎所有功能,不需要从RSA算法出发进行编码。在j2se标准库中,javax.crypto中的Cipher类用于具体的加密和解密,java.security包直接提供了数字签名的相关方法。因为有强大的标准库支持,文件的读取和保存操作、各环节必要的数据编码转换、图形操作界面的实现也很简单(使用java.io java.awt或javax.swing 等包),如果结合一种快速开发的IDE,比如JBuilder,整个软件可以在很短的时间内编码完成。如果不考虑非PC设备和机器效率等问题,java平台几乎是最佳解决方案。但是缺点也很明显,如果想把核心算法和功能应用到非PC设备(例如嵌入式手持设备),则要求设备上有支持前面提及的加密类库的CVM;对于在PC上运行,JVM的数据运算速度要远远落后于本地化代码在PC上的运算速度,本软件需要进行大量运算,这一点不适合由java完成。
    2. 整个工程使用.Net平台实现
      与使用java平台完全类似,加密等有.Net基础类库的支持,不需要大量编码实现,另外由于Visual Studio的强大便利,这种规模的工程可以十分迅速的完成。缺点是只能在有微软.Net Framework的环境运行,在Windows操作系统,.Net Framework的机器效率好于java平台,但是相比于本地化的代码,还是十分拖沓的。
      在这里插入图片描述
      观察上述算法,发现E根据奇偶除以二或减一除以二实际就是二进制的移位操作,所以要知道需要如何乘模变量,并不需要反复对E 进行除以二或减一除以二的操作,只需要验证E 的二进制各位是0 还是1 就可以了。
  • 相关阅读:
    CMSIS-RTOS在stm32使用
    JavaSE---LinkedList与链表
    java毕业设计开题报告s2sh+mysql实现的毕业生就业去向登记管理系统[包运行成功]
    UE4 通过重叠事件开启门
    Spring Boot进阶(93):体验式教程:手把手教你整合Spring Boot和Zipkin
    【基于英语记单词的微信小程序的开发与设计-哔哩哔哩】 https://b23.tv/aBd4NHg
    linux 驱动——将模块编译进内核
    HTML5基础:框架,文字,图片,表格,列表
    Jenkins数据迁移、备份与恢复-旧设备到新设备(简单教程)
    Java 学习路线分享 maven 是什么?
  • 原文地址:https://blog.csdn.net/bwwork/article/details/126919612