欢迎来到天天文库
浏览记录
ID:56279099
大小:49.00 KB
页数:25页
时间:2020-06-05
《JAVA加密算法的实现用例.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、参数algorithm如:"DSA" publicfinalvoidinitSign(PrivateKeyprivateKey)throwsInvalidKeyException用指定的私钥初始化参数:privateKey所进行签名时用的私钥 publicfinalvoidupdate(bytedata)throwsSignatureExceptionpublicfinalvoidupdate(byte[]data)throwsSignatureExceptionpublicfinalvoidupdate(byte[]data,intoff,intlen)throwsSign
2、atureException添加要签名的信息 publicfinalbyte[]sign()throwsSignatureException返回签名的数组,前提是initSign和update publicfinalvoidinitVerify(PublicKeypublicKey)throwsInvalidKeyException用指定的公钥初始化参数:publicKey验证时用的公钥 publicfinalbooleanverify(byte[]signature)throwsSignatureException验证签名是否有效,前提是已经initVerify初始化参数:
3、signature签名数组 */ importjava.security.*; importjava.security.spec.*;publicclasstestdsa{ publicstaticvoidmain(String[]args)throwsjava.security.NoSuchAlgorithmException,java.lang.Exception{ testdsamy=newtestdsa(); my.run(); } publicvoidrun() { //数字签名生成密钥 //第一步生成密钥对,如果已经生成过,本过程就可以跳过,对用户
4、来讲myprikey.dat要保存在本地 //而mypubkey.dat给发布给其它用户 if((newjava.io.File("myprikey.dat")).exists()==false){ if(generatekey()==false){ System.out.println("生成密钥对败"); return; }; }//第二步,此用户//从文件中读入私钥,对一个字符串进行签名后保存在一个文件(myinfo.dat)中//并且再把myinfo.dat发送出去//为了方便数字签名也放进了myifno.dat文件中,当然也
5、可分别发送 try{ java.io.ObjectInputStreamin=newjava.io.ObjectInputStream(newjava.io.FileInputStream("myprikey.dat")); PrivateKeymyprikey=(PrivateKey)in.readObject(); in.close(); //java.security.spec.X509EncodedKeySpecpubX509=newjava.security.spec.X509EncodedKeySpec(bX509); //java.security.spec
6、.X509EncodedKeySpecpubkeyEncode=java.security.spec.X509EncodedKeySpec Stringmyinfo="这是我的信息"; //要签名的信息 //用私钥对信息生成数字签名 java.security.Signaturesignet=java.security.Signature.getInstance("DSA"); signet.initSign(myprikey); signet.update(myinfo.getBytes()); byte[]signed=signet.sign(); //对信息的数字签名
7、 System.out.println("signed(签名内容)="+byte2hex(signed)); //把信息和数字签名保存在一个文件中 java.io.ObjectOutputStreamout=newjava.io.ObjectOutputStream(newjava.io.FileOutputStream("myinfo.dat")); out.writeObject(myinfo); out.writeObject(signed); out.close(); System.out.pr
此文档下载收益归作者所有