public final void initSign(PrivateKey privateKey) throws InvalidKeyException 用指定的私钥初始化 参数:privateKey 所进行签名时用的私钥
public final void update(byte data) throws SignatureException public final void update(byte[] data) throws SignatureException public final void update(byte[] data, int off, int len) throws SignatureException 添加要签名的信息
public final byte[] sign() throws SignatureException 返回签名的数组,前提是initSign和update
public final void initVerify(PublicKey publicKey) throws InvalidKeyException 用指定的公钥初始化 参数:publicKey 验证时用的公钥
public final boolean verify(byte[] signature) throws SignatureException 验证签名是否有效,前提是已经initVerify初始化 参数: signature 签名数组 */ import java.security.*; import java.security.spec.*; public class testdsa { public static void main(String[] args) throws java.security.NoSuchAlgorithmException,java.lang.Exception { testdsa my=new testdsa(); my.run(); } public void run() {
//数字签名生成密钥 //第一步生成密钥对,如果已经生成过,本过程就可以跳过,对用户来讲myprikey.dat要保存在本地 //而mypubkey.dat给发布给其它用户 if ((new java.io.File("myprikey.dat")).exists()==false) { if (generatekey()==false) { System.out.println("生成密钥对败"); return; }; } //第二步,此用户 //从文件中读入私钥,对一个字符串进行签名后保存在一个文件(myinfo.dat)中 //并且再把myinfo.dat发送出去 //为了方便数字签名也放进了myifno.dat文件中,当然也可分别发送