}
}
public void genSignature(String keyFile,String str,String sigFile)
throws NoSuchAlgorithmException,InvalidKeyException,SignatureException,
ClassNotFoundException,FileNotFoundException,IOException
{
FileInputStream fis=new FileInputStream(keyFile);
ObjectInputStream ois=new ObjectInputStream(fis);
KeyPair kp=(KeyPair)ois.readObject();
PublicKey pubKey=kp.getPublic();
PrivateKey priKey=kp.getPrivate();
fis.close();
ois.close();
Signature sig=Signature.getInstance("SHA1WithDSA");
sig.initSign(priKey);
sig.update(str.getBytes());
byte[] b=sig.sign();
FileOutputStream fos=new FileOutputStream(sigFile);
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(b);
fos.close();
oos.close();
}
}
第三段代码当然是用于验证签名了.命令行中指定三个参数.密钥文件,更新验证的字
符串和签名文件.
import java.security.*;
import java.io.*;
public class SignVerify
{
public static void main(String[] args)
{
if(args.length!=3)
{
System.out.println("Usage: java SignVerify KeyFile String SigFile");
System.exit(1);
}
SignVerify obj=new SignVerify();
try{
obj.verify(args[0],args[1],args[2]);
}catch(NoSuchAlgorithmException ex)
{