设计一个使用rsa算法进行加密解密的系统网络安全基础课程设计.doc
《设计一个使用rsa算法进行加密解密的系统网络安全基础课程设计.doc》由会员分享,可在线阅读,更多相关《设计一个使用rsa算法进行加密解密的系统网络安全基础课程设计.doc(21页珍藏版)》请在沃文网上搜索。
1、 目录1课程设计简介21.1 课程设计的目的21.2 课程设计内容22课程设计的整体实现过程22.1 流程分析22.2算法实现代码42.3测试与评价183心得体会204参考文献21.21.1课程设计简介1.1 课程设计的目的在数据加密解密算法中,RSA是典型的双密钥体制,目前均在大量使用。通过实验,让我们充分理解和掌握RSA算法的使用。这种加密算法的特点主要是密钥的变化, RSA同时有两把钥匙,公钥与私钥。同时支持数字签名。数字签名的意义在于,对传输过来的数据进行校验。确保数据在传输工程中不被修改。1.2 课程设计内容我们一组设计一个使用RSA算法进行加密解密的系统。并设计操作界面,对输入的明
2、文可以进行加解密以及对指定的文件可以加解密。2课程设计的整体实现过程2.1 流程分析甲方构建密钥对,将公钥公布给乙方,将私钥保留。 甲方使用私钥加密数据,然后用私钥对加密后的数据签名,发送给乙方签名以及加密后的数据;乙方使用公钥、签名来验证待解密数据是否有效,如果有效使用公钥对数据解密。 乙方使用公钥加密数据,向甲方发送经过加密后的数据;甲方获得加密数据,通过私钥解密。2.2算法实现代码package RSA;import java.awt.*;import java.awt.event.*;import java.util.*;/定义对话框类class Rsa_dialog extends
3、Dialog implements ActionListener int message; Panel panel_dialog;Button button_queding;Label label_jinggao;Rsa_dialog(Frame f,String s,boolean b,String jinggao)super(f,s,b);panel_dialog=new Panel(); panel_dialog.setLayout(null);label_jinggao=new Label(jinggao);panel_dialog.add(label_jinggao);label_j
4、inggao.setBounds(2, 2, 145, 40);button_queding=new Button(确定);panel_dialog.add(button_queding);button_queding.setBounds(150/2-80/2,44,80,30);button_queding.addActionListener(this);add(panel_dialog);Toolkit tool=getToolkit();Dimension dim=tool.getScreenSize();setBounds(dim.width/2-120/2,dim.height/2-
5、150/2,150,120);addWindowListener(new WindowAdapter( )public void windowClosing(WindowEvent e)message=-1;setVisible(false););public void actionPerformed(ActionEvent e)if(e.getSource()=button_queding)message=1;setVisible(false);class WindowArea extends Frame implements ActionListener/定义对话框Rsa_dialog d
6、ialog_p,dialog_q,dialog_mingwen_n;/定义选择素数p、qString string_p,string_q;long long_p,long_q;Panel panel_p_q;TextField textfield_p,textfield_q;Label label_p,label_q;/定义O(n)nCA-IOS(799054470);String string_on,string_n;long long_on,long_n;Panel panel_on_n;TextField textfield_on,textfield_n;Label label_on,l
7、abel_n;Button button_on,button_n;/定义可选择的整数ePanel panel_kexuan_e;Label label_kexuan_e;TextArea textarea_kexuan_e;Button button_e;/定义选择ePanel panel_xuanze_e;Label label_xuanze_e;TextField textfield_xuanze_e;/定义dString string_e,string_d;long long_e,long_d;Panel panel_d;Label label_d;TextField textfield
8、_d;Button button_d;/定义公钥Panel panel_gongyao;Label label_gongyao_e,label_gongyao_n;TextField textfield_gongyao_e,textfield_gongyao_n;Button button_gongyao;/定义私钥Panel panel_siyao;Label label_siyao_d,label_siyao_n;TextField textfield_siyao_d,textfield_siyao_n;Button button_siyao;/定义加密long long_jiami_mi
9、ngwen,long_jiami_miwen;String string_jiami_mingwen,string_jiami_miwen;Panel panel_jiami;TextField textfield_jiami_mingwen,textfield_jiami_miwen;Label label_jiami_mingwen,label_jiami_miwen;Button button_jiami;/定义解密long long_jiemi_mingwen,long_jiemi_miwen;String string_jiemi_mingwen,string_jiemi_miwen
10、;Panel panel_jiemi;TextField textfield_jiemi_mingwen,textfield_jiemi_miwen;Label label_jiemi_mingwen,label_jiemi_miwen;Button button_jiemi;WindowArea(String s)super(s);setLayout(null);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););/框架选择素数p、qpanel_p_q=ne
11、w Panel();panel_p_q.setBounds(30,50,700,50);panel_p_q.setLayout(null);label_p=new Label(选择素数p:);panel_p_q.add(label_p);label_p.setBounds(10, 10, 150, 20);textfield_q=new TextField();panel_p_q.add(textfield_q);textfield_q.setBounds(160,10,75,20);label_q=new Label( 选择素数q:);panel_p_q.add(label_q);label
12、_q.setBounds(245,10,150,20);textfield_p=new TextField();panel_p_q.add(textfield_p);textfield_p.setBounds(405,10,75,20);add(panel_p_q);/框架生成O(n)npanel_on_n=new Panel();panel_on_n.setBounds(30,90,700,70);panel_on_n.setLayout(null);label_on=new Label(O(n):);panel_on_n.add(label_on);label_on.setBounds(1
13、0,10,100,20);textfield_on=new TextField();textfield_on.setEditable(false);panel_on_n.add(textfield_on);textfield_on.setBounds(160,10,75,20);button_on=new Button(生成O(n));button_on.addActionListener(this);panel_on_n.add(button_on);button_on.setBounds(488,10,110,20);label_n=new Label(n:);panel_on_n.add
14、(label_n);label_n.setBounds(10,40,150,20);textfield_n=new TextField();textfield_n.setEditable(false);panel_on_n.add(textfield_n);textfield_n.setBounds(160,40,75,20);button_n=new Button(生成n);button_n.addActionListener(this);panel_on_n.add(button_n);button_n.setBounds(488,40,110,20);add(panel_on_n);/框
15、架可选择的epanel_kexuan_e=new Panel();panel_kexuan_e.setBounds(30,160,700,100);panel_kexuan_e.setLayout(null);label_kexuan_e=new Label(可供选择的e有:);/label_kexuan_e.setBackground(Color.cyan);panel_kexuan_e.add(label_kexuan_e);label_kexuan_e.setBounds(10,10,150,20);textarea_kexuan_e=new TextArea();textarea_ke
16、xuan_e.setEditable(false);panel_kexuan_e.add(textarea_kexuan_e);textarea_kexuan_e.setBounds(160,10,250,80);button_e=new Button(生成可供选择的e);button_e.addActionListener(this);panel_kexuan_e.add(button_e);button_e.setBounds(488,10,110,20);add(panel_kexuan_e);/框架选择epanel_xuanze_e=new Panel();panel_xuanze_e
17、.setBounds(30,260,700,40);/panel_xuanze_e.setBackground(Color.blue);panel_xuanze_e.setLayout(null);label_xuanze_e=new Label(选择e为:);panel_xuanze_e.add(label_xuanze_e);label_xuanze_e.setBounds(10,10,150,20);textfield_xuanze_e=new TextField();panel_xuanze_e.add(textfield_xuanze_e);textfield_xuanze_e.se
18、tBounds(160,10,75,20);add(panel_xuanze_e);/框架dpanel_d=new Panel();panel_d.setBounds(30,310,700,40);panel_d.setLayout(null);label_d=new Label( d为:);panel_d.add(label_d);label_d.setBounds(10,10,150,20);textfield_d=new TextField();textfield_d.setEditable(false);panel_d.add(textfield_d);textfield_d.setB
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 一个 使用 rsa 算法 进行 加密 解密 系统 网络安全 基础 课程设计
