(4)    Java语言是健壮的。
(5)    Java语言是安全的。
(6)    Java语言是体系结构中立的
(7)    Java语言是可移植的。
(8)    Java语言是解释型的。
(9)    Java是高性能的。
(10)    Java语言是多线程的。
(11)    Java语言是动态的。
5.2系统部分模块的实现
核心代码写在一个接口中,方便以后系统的扩展和修改,接口内容如下:
方法一:用于创建公钥和私钥的函数:
boolean createPublicAndPrivateKey(String address) throws Exception;
方法二:用于对文件进行数字签名的函数:
boolean createSignature(String address1,String address2)throws Exception;
方法三:用于对文件签名验证的函数:
String checkSignature(String address1,String address2)throws Exception;
5.2.1 创建公钥和私钥
导入包import java.security.KeyPairGenerator;这个包是java类库中一个特定的算法用来生成公钥和私钥。使用KeyPairGenerator列获取实例非对称密钥加密DSA的算法:
KeyPairGenerator keyGen=KeyPairGenerator.getInstance("DSA");
对非对称密钥加密DSA的实例进行初始化:
keyGen.initialize(1024);
使用非对称密钥加密DSA的实例获取公钥和私钥对:
KeyPair key=keyGen.generateKeyPair();
使用获取到的公私钥对进一步的得到公钥:
PublicKey publicKey=key.getPublic();
使用获取到的公私钥对进一步的得到私钥:
PrivateKey privateKey=key.getPrivate();
5.2.2 在数据发送端的数字签名
根据输入的address1参数,创建文件对象file_info,同时将文件对象file_info放入文件流fis_info中,根据创建的文件对象file_info统计出文件中的字符数创建byte数组,读入byte数组到内存中。
根据读入参数address2参数,创建文件对象fis_private,同时将文件对象fis_private放入对象流ois_private中,根据对象流读入私钥放入新创建的对象privateKey中。
导入类Signature,这个签名类是用于提供数字签名算法DSA的:
Signature sig=Signature.getInstance("DSA");
将读入的私钥作为参数放入签名类中:
sig.initSign(privateKey);
对读入的文件进行签名得到一段签名的密文:
sig.update(infoBytes);
5.2.3 在数据接收端的验证
根据输入的address1参数,创建文件对象file_info,同时将文件对象file_info放入文件流fis_info中,根据创建的文件对象file_info统计出文件中的字符数创建byte数组,读入byte数组到内存中。
根据读入参数address2参数,创建文件对象fis_private,同时将文件对象fis_private放入对象流ois_private中,根据对象流读入公钥钥放入新创建的对象publicKey中。
导入类Signature,这个签名类是用于提供数字签名算法DSA的:
上一篇:基于.NET的大学生就业模拟平台的设计和实现
下一篇:JSP班级管理网站设计与实现+ER图

数据挖掘在电子商务中的应用

电子政务环境下公务员的...

电子政务建设与民营企业...

电子政务与行政体制改革...

asp.net+sqlserver数据挖掘的在...

基于百度语音识别api的语音识别服务

矩阵奇异值分解及其在图像处理中的应用

AT89C52单片机的超声波测距...

承德市事业单位档案管理...

国内外图像分割技术研究现状

公寓空调设计任务书

志愿者活动的调查问卷表

10万元能开儿童乐园吗,我...

C#学校科研管理系统的设计

神经外科重症监护病房患...

中国学术生态细节考察《...

医院财务风险因素分析及管理措施【2367字】