电子签名用Java怎么实现 请教,现在javaWEB实现电子手写签名的技术
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.Signature;
import java.security.SignatureException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* ECDSA 160bit 签名及签名验证例子
*/
public class ECDSASignature {
public static void main(String argv[]) {
signatureTest();
}
public static void signatureTest() {
/**
* 密钥对生成
*/
KeyPairGenerator keyPairGenerator = null;
try {
keyPairGenerator = KeyPairGenerator.getInstance("EC");
} catch (NoSuchAlgorithmException ex) {
return;
}
SecureRandom secureRandom = new SecureRandom();
keyPairGenerator.initialize(160, secureRandom);
KeyPair pair = keyPairGenerator.generateKeyPair();
Key publicKey = pair.getPublic();
Key privateKey = pair.getPrivate();
// 字符串
String hako = "test";
/**
* 私钥签名(ECDSA 160bit)
*/
byte[] sign = null;
try {
Signature signatureSign = null;
signatureSign = Signature.getInstance("NONEwithECDSA");
signatureSign.initSign((PrivateKey) privateKey, secureRandom);
signatureSign.update(hako.getBytes());
sign = signatureSign.sign();
System.out.println("sign: " + new String(sign));
} catch (InvalidKeyException | NoSuchAlgorithmException | SignatureException ex) {
Logger.getLogger(ECDSASignature.class.getName()).log(Level.SEVERE, null, ex);
}
/**
* 用公钥进行签名验证
*/
Signature signatureVerify = null;
try {
signatureVerify = Signature.getInstance("NONEwithECDSA");
signatureVerify.initVerify((PublicKey) publicKey);
signatureVerify.update(hako.getBytes());
boolean verifyResult = signatureVerify.verify(sign);
System.out.println(verifyResult ? "签名OK" : "签名NG");
} catch (NoSuchAlgorithmException | InvalidKeyException | SignatureException e) {
Logger.getLogger(ECDSASignature.class.getName()).log(Level.SEVERE, null, e);
}
}
}
http://www.huuinn.com/java-%E7%94%B5%E5%AD%90%E7%AD%BE%E5%90%8D%E8%8C%83%E4%BE%8B%E4%BB%A3%E7%A0%81/
需要买第三方控件吧!
电子签名数据解析 JBIG用java解析为图片格式 展示到jsp页面~
有代码示例没,有的话,发我。我看一下。
这种问题,只能在哟东西的情况下才能弄。
HTML5 记录书写的轨迹
~~~~~~~~~~
~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~
电子签名用Java怎么实现
答:import java.security.InvalidKeyException;import java.security.Key;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.NoSuchAlgorithmException;import java.security.PrivateKey;import java.security.PublicKey;import java.security.SecureRandom;import java.security.Signat...
Java 给Word添加数字签名 Java给Word添加数字签名的方法
答:02Java代码:importcom.spire.doc.*;publicclassAddSignature{publicstaticvoidmain(String[]args){//加载Word文档Documentdoc=newDocument();doc.loadFromFile("test.docx");//添加数字签名,并保存文档doc.saveToFile("AddSignature.docx",FileFormat.Docx_2013,"Cermia.pfx"...
数字签名的Java签名步骤
答:1、将applet的class文件打包成*.jar(不会的可以在命令行中输入jar查看帮助)2 首先我们要生成一个keystore 否则在签名的时候报如下错误jarsigner 错误: java.lang.RuntimeException: 密钥库装入: C:\Documents and Settings\ij2ee\.keystore (系统找不到指定的文件。). (这边的ij2ee 是我当前系统...
Java2下Applet数字签名实现方法
答:1.将程序需要用到的各种包文件全部解压(我这儿要用到WEBLOGIC的JMS包使用命令jar xf weblogicc.jar),然后使用JDK的打包命令将编译好的监控程序.class和刚才解压的包一起打包到一个包中。(前提我已经将监控程序和解开的包都放在同一个目录下了),都是dos状态下的命令,具体命令见jdk1.3(1.2)的bi...
编写一个Java程序,对指定文本进行数字签名(文本随意举例)
答:一:需要包含的包 import java.security.*;import java.io.*;import java.util.*;import java.security.*;import java.security.cert.*;import sun.security.x509.import java.security.cert.Certificate;import java.security.cert.CertificateFactory;二:从文件中读取证书 用keytool将.keystore中的证书...
Java 给Excel添加数字签名 Excel VBA使用数字签名
答:下面介绍如何在Java程序代码中实现给Excel工作簿添加签名。工具/材料Excel版本:2013编译环境:IntelliJ IDEA2018JDK版本:1.8.0Excel库工具:spire.xls.jar 4.3.4数字证书及密码操作方法01在IDEA项目文件夹路径下,存入一个Excel文件,版本为2013版本的xlsx文件;以及已知密码的pfx格式的数字证书。如图:02...
java签名是什么意思?
答:Java 签名是指对代码进行数字签名,以确保代码来源的可靠性和代码完整性。Java 签名分为两种类型:自我签名和证书签名。自我签名简单,只需要使用 Java keytool 工具来生成签名证书即可,但信任性较低。证书签名通常需要购买或获得数字签名证书,并通过 Java keytool 工具对证书进行验证,信任性更高。Java ...
Java加密和数字签名
答:System out println( \n +messageDigest getProvider() getInfo()); //开始使用算法 messageDigest update(plainText); System out println( \nDigest: ); //输出算法运算结果 System out println(new String(messageDigest digest() UTF )); } } 还可以通过消息认证码来进行加密实现 javax crypto Mac提供了一...
¥¥¥基于java语言的数字签名¥¥¥
答:上面提到,私钥加密需要一个共享的密钥,那么如何传递密钥呢?web环境下,直接传递的话很容易被侦听到,幸好有了公钥加密的出现。公钥加密也叫不对称加密,不对称算法使用一对密钥对,一个公钥,一个私钥,使用公钥加密的数据,只有私钥能解开(可用于加密);同时,使用私钥加密的数据,只有公钥能解开(签名)。但是速度很慢(比私...