时间戳服务
This commit is contained in:
@ -43,7 +43,7 @@ public class TimeServiceConstant {
|
|||||||
TSASignedResult result = client.signTimeStamp("SHA1", data.getBytes("UTF-8"));
|
TSASignedResult result = client.signTimeStamp("SHA1", data.getBytes("UTF-8"));
|
||||||
//第四步:获取时间戳数据,tsaData为时间戳数据,验证时间戳时使用,如果不是实时验证,需要将时间戳数据保存在应用服务器
|
//第四步:获取时间戳数据,tsaData为时间戳数据,验证时间戳时使用,如果不是实时验证,需要将时间戳数据保存在应用服务器
|
||||||
byte[] tsaData = result.getSignedData();
|
byte[] tsaData = result.getSignedData();
|
||||||
System.out.println("tsaData -->"+tsaData);
|
log.info("tsaData -->"+tsaData);
|
||||||
String timestamp = Base64.encodeBase64String(tsaData);
|
String timestamp = Base64.encodeBase64String(tsaData);
|
||||||
return timestamp;
|
return timestamp;
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
@ -102,55 +102,4 @@ public class TimeServiceConstant {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public void getTSAClientTest() throws Exception{
|
|
||||||
Properties prop = new Properties();
|
|
||||||
ClassPathResource classPathResource = new ClassPathResource("cssconfig.properties");
|
|
||||||
InputStream inputStream =classPathResource.getInputStream();
|
|
||||||
//String path = ClassUtils.getDefaultClassLoader().getResource("").getPath();
|
|
||||||
//InputStream is = new FileInputStream("/resources/cssconfig.properties");
|
|
||||||
prop.load(inputStream);
|
|
||||||
inputStream.close();
|
|
||||||
|
|
||||||
try {
|
|
||||||
// 获得TSAClient工厂实例
|
|
||||||
TSAClientFactory factory = TSAClientFactory.newInstance(prop);
|
|
||||||
// 获得TSAClient
|
|
||||||
TSAClient client = (TSAClient) factory.getTSAClient();
|
|
||||||
|
|
||||||
// 待申请时间戳的原文
|
|
||||||
String source = "abcdefghijklmn";
|
|
||||||
|
|
||||||
//第三步:申请时间戳,向时间戳服务器发起申请时间戳请求,返回时间戳结果
|
|
||||||
TSASignedResult result = client.signTimeStamp("SHA1", source.getBytes("UTF-8"));
|
|
||||||
|
|
||||||
//第四步:获取时间戳数据,tsaData为时间戳数据,验证时间戳时使用,如果不是实时验证,需要将时间戳数据保存在应用服务器
|
|
||||||
byte[] tsaData = result.getSignedData();
|
|
||||||
System.out.println("tsaData -->"+tsaData);
|
|
||||||
String timestamp = Base64.encodeBase64String(tsaData);
|
|
||||||
System.out.println("timestamp -->"+timestamp);
|
|
||||||
|
|
||||||
TSAVerifyResult verifyResult = client.verifyTimeStamp(Base64.decodeBase64(timestamp));
|
|
||||||
System.out.println("verifyResult 1--> {}"+ verifyResult);
|
|
||||||
System.out.println("verifyResult 2--> {}"+ Base64.encodeBase64String(verifyResult.getData()));
|
|
||||||
System.out.println("verifyResult 3--> {}"+ verifyResult.getSignedTime());
|
|
||||||
System.out.println("verifyResult 4--> {}"+ verifyResult.getSignerSubject());
|
|
||||||
System.out.println("verifyResult 5--> {}"+ verifyResult.getSignerCertSerialNumber());
|
|
||||||
String time = new SimpleDateFormat("yyyyMMddHHmmss").format(verifyResult.getSignedTime());
|
|
||||||
System.out.println("verifyResult 5--> {}"+ time);
|
|
||||||
TtsAgent.TtsParseResult ttsParseResult = new TtsAgent.TtsParseResult(time, HelperUtil.bytesToHexString(verifyResult.getData()),
|
|
||||||
verifyResult.getSignerSubject());
|
|
||||||
System.out.println("timestamp -> {}"+ ttsParseResult.getTimestamp());
|
|
||||||
System.out.println("cert -> {}"+ttsParseResult.getCert());
|
|
||||||
System.out.println("hash -> {}"+ttsParseResult.getHash());
|
|
||||||
|
|
||||||
} catch (TSAException ex) {
|
|
||||||
System.out.println("时间戳申请失败, 失败原因: " + ex.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user