⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 signsend.java

📁 高等院校计算机应用技术硕士研究生课程,高级计算机网络程序设计实例子代码,SECURE部分.
💻 JAVA
字号:
import java.io.*;
import java.security.*;

class signSend
{
    public static void main(String[] args) 
    {
        if (args.length != 1) 
        {
            System.out.println("Usage: GenSig nameOfFileToSign");
        }
        else try
        {

            //密钥生成器
            KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA", "SUN");
            //安全随机数
            SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");

            //初始化密钥生成器
            keyGen.initialize(1024, random);

            //得到公钥、私钥
            KeyPair pair = keyGen.generateKeyPair();
            PrivateKey priv = pair.getPrivate();
            PublicKey pub = pair.getPublic();


            //生成签名对象
            Signature dsa = Signature.getInstance("SHA1withDSA", "SUN"); 

	    //用公钥初始化签名对象
            dsa.initSign(priv);
                        
	    //提取文件流
            FileInputStream fis = new FileInputStream(args[0]);
            BufferedInputStream bufin = new BufferedInputStream(fis);
            byte[] buffer = new byte[1024];
            int len;
            while (bufin.available() != 0) {
                len = bufin.read(buffer);
                dsa.update(buffer, 0, len);
                };

     
            bufin.close();

	    //使用签名对象生成签名
            byte[] realSig = dsa.sign();
        
            //保存签名对象
            FileOutputStream sigfos = new FileOutputStream("sig");
            sigfos.write(realSig);

            sigfos.close();


            //保存公钥
            byte[] key = pub.getEncoded();
            FileOutputStream keyfos = new FileOutputStream("suepk");
            keyfos.write(key);

            keyfos.close();

	} 
	catch (Exception e) 
	{
            System.err.println("Caught exception " + e.toString());
        }

    };

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -