数字签名与验证只需要用户输入三个参数:
- Ø 原文件
- Ø 签名信息文件
- Ø 用户名
签名过程:
- 1. 首先从用户名对应的用户注册文件中读取用户信息和私钥,对原文件产生报文摘要,再对摘要进行签名。原文件的报文摘要、对报文摘要的签名都存入签名信息文件。
- 2. 接收三个输入参数:原文件路径、签名信息文件路径和用户名
- 3. 从用户注册文件中读取用户信息和私钥
- 4. 对原文件产生报文摘要、把摘要用对象输出流写入签名信息文件
- 5. 生成随机源
- 6. 生成签名对象,用私有密钥和随机源初始化签名对象
- 7. 将原文件的报文摘要输入签名对象
- 8. 对原文件的报文摘要进行签名,将签名信息用对象输出流写入签名信息文件
验证签名过程:
根据签名过程的逆过程对签名信息对比认证,顺序不能颠倒。
依次从签名信息文件中读取的对象是:原文件的报文摘要,对原文件报文摘要的签名,
- 1. 接收三个输入参数:原文件路径、签名信息文件路径和用户名
- 2. 从用户注册文件中读取用户信息和公钥
- 3. 从签名信息文件中,读取原文摘要和数字签名
- 4. 产生原文件报文摘要,并与从签名信息文件中读取到的摘要进行对比
- 5. 生成签名对象,用公有密钥验证签名信息