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

📄 versig.java

📁 初级学习资料必读本
💻 JAVA
字号:
import java.io.*;import java.security.*;import java.security.spec.*;class VerSig {    public static void main(String[] args) {        /* Verify a DSA signature */        if (args.length != 3) {            System.out.println("Usage: VerSig publickeyfile signaturefile datafile");            }        else try{            /* import encoded public key */            FileInputStream keyfis = new FileInputStream(args[0]);            byte[] encKey = new byte[keyfis.available()];              keyfis.read(encKey);            keyfis.close();            X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(encKey);            KeyFactory keyFactory = KeyFactory.getInstance("DSA", "SUN");            PublicKey pubKey = keyFactory.generatePublic(pubKeySpec);            /* input the signature bytes */            FileInputStream sigfis = new FileInputStream(args[1]);            byte[] sigToVerify = new byte[sigfis.available()];             sigfis.read(sigToVerify );            sigfis.close();            /* create a Signature object and initialize it with the public key */            Signature sig = Signature.getInstance("SHA1withDSA", "SUN");            sig.initVerify(pubKey);            /* Update and verify the data */            FileInputStream datafis = new FileInputStream(args[2]);            BufferedInputStream bufin = new BufferedInputStream(datafis);            byte[] buffer = new byte[1024];            int len;            while (bufin.available() != 0) {                len = bufin.read(buffer);                sig.update(buffer, 0, len);                };            bufin.close();            boolean verifies = sig.verify(sigToVerify);            System.out.println("signature verifies: " + verifies);        } catch (Exception e) {            System.err.println("Caught exception " + e.toString());};    }}

⌨️ 快捷键说明

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