将签名和公钥保存在文件中

现在,您已经为某些数据生成了签名,您需要将签名字节保存在一个文件中,将公钥字节保存在另一个文件中,以便可以(通过调制解调器,软盘,邮件等)发送其他文件

  • 为其生成签名的数据,

  • 签名,以及

  • 公钥

接收者可以通过运行您将在接下来的验证数字签名步骤中生成的VerSig程序来验证数据是否来自您,并且在传输过程中没有被修改。该程序使用公共密钥来验证接收到的签名是接收到的数据的真实签名。

回想一下,签名已放置在名为realSig的字节数组中。您可以通过以下方式将签名字节保存在名为sig的文件中。

/* save the signature in a file */
FileOutputStream sigfos = new FileOutputStream("sig");
sigfos.write(realSig);
sigfos.close();

生成公钥和私钥步骤回想起,公共密钥已放置在名为pub的 PublicKey 对象中。您可以通过调用getEncoded方法获取编码后的密钥字节,然后将编码后的字节存储在文件中。您可以根据需要命名文件。例如,如果您的名字叫 Susan,则可以将其命名为suepk(表示“ Sue 的公钥”),如下所示:

/* save the public key in a file */
byte[] key = pub.getEncoded();
FileOutputStream keyfos = new FileOutputStream("suepk");
keyfos.write(key);
keyfos.close();