毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

数字签名在电子政务系统中的实现(4)

时间:2017-02-17 12:50来源:毕业论文
(4) Java语言是健壮的。 (5) Java语言是安全的。 (6) Java语言是体系结构中立的 (7) Java语言是可移植的。 (8) Java语言是解释型的。 (9) Java是高性能的。 (10) Jav


(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的: 数字签名在电子政务系统中的实现(4):http://www.youerw.com/jisuanji/lunwen_3073.html
------分隔线----------------------------
推荐内容