(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图

基于MOODLE平台的在线交互式学习设计

Android员工请假系统设计

jsp《计算机硬件技术基础...

Android手机考勤系统设计

无人艇控制系统硬件在环仿真系设计+源代码

基于.net的在线考试系统设计与实现

基于JSP的课堂在线测试系统的设计与实现

基于Joomla平台的计算机学院网站设计与开发

压疮高危人群的标准化中...

上海居民的社会参与研究

浅论职工思想政治工作茬...

从政策角度谈黑龙江對俄...

提高教育质量,构建大學生...

AES算法GPU协处理下分组加...

浅谈高校行政管理人员的...

STC89C52单片机NRF24L01的无线病房呼叫系统设计

酵母菌发酵生产天然香料...