电子签章,就是给文件盖个章,哈哈,如果你也这么认为那就大错特错了。实际上不是这么简单,而是在盖章的同时隐藏了一个签名(加密)。

一般做电子签章都有电子签章服务器。需要知道电子签章服务器的ip和端口。

下面是java调用电子签章服务器代码,仅供参考。

1.依赖的jar

esspdf-client-1.4.1-SNAPSHOT.jar

jackson-module-jaxb-annotations-2.0.6.jar

jackson-all.jar

2.代码:

[html] view plain copy
 print?
  1.        ESSPDFClientTool essPDFClientTool = null;  
  2. InputStream in = null;  
  3. ByteArrayOutputStream outArr = new ByteArrayOutputStream();  
  4. OutputStream out = null;  
  5. try {  
  6.     String elePlyIP = DeploymentConfig.getProperty(DeploymentConfigConstants.ELEC_SIGN_IP);//获得电子签章IP  
  7.     String elePlyPort = DeploymentConfig.getProperty(DeploymentConfigConstants.ELEC_SIGN_PORT);//获得电子签章端口  
  8.     essPDFClientTool = new ESSPDFClientTool(elePlyIP,Integer.parseInt(elePlyPort));  
  9.     in = new FileInputStream(new File(filePath));  
  10.     int len;  
  11.     while ((len=in.read())!=-1) {  
  12.         outArr.write(len);  
  13.         outArr.flush();  
  14.     }  
  15.     ChannelMessage message = null;  
  16.     String[] rulesArr = rules.split(";");  
  17.     List<String> rulesList = new ArrayList<String>();  
  18.     if(rulesArr.length>1){  
  19.         rulesList = Arrays.asList(rulesArr);  
  20.         message = essPDFClientTool.pdfSign(rulesList, outArr.toByteArray());  
  21.     }else{  
  22.         message = essPDFClientTool.pdfSign(rules, outArr.toByteArray());  
  23.     }  
  24.           
  25.     System.out.println("签章状态信息:" + message.getStatusInfo());  
  26.     if ("200".equals(message.getStatusCode())) {// 成功  
  27.         out = new FileOutputStream(filePath);  
  28.         byte[] signByte = message.getBody();  
  29.         out.write(signByte);  
  30.         out.flush();  
  31.       
  32.     }else{  
  33.         System.out.println("==============电子签章服务器返回状态失败==================");  
  34.         throw new Exception("生成电子签章失败");  
  35.     }  
  36. } catch (Exception e) {  
  37.     e.printStackTrace();  
  38.     throw new Exception("生成电子签章失败");  
  39. }