欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java簽名和摘要

李明濤1年前6瀏覽0評論

Java簽名和摘要是Java安全機制中的兩種重要機制。簽名能夠?qū)Υa或者數(shù)據(jù)文件進行數(shù)字簽名,證明其來自于可信賴的源頭;而摘要則是一種哈希算法,可以對數(shù)據(jù)進行唯一性鑒別和完整性驗證。

//使用Java簽名進行文件數(shù)字簽名
Signature signature = Signature.getInstance("SHA1withRSA");
PrivateKey privateKey = getPrivateKeyFromKeyStore();
signature.initSign(privateKey);
Path path = Paths.get("test.txt");
byte[] data = Files.readAllBytes(path.toAbsolutePath());
signature.update(data);
byte[] sign = signature.sign();

上述代碼中的Signature類是Java提供的數(shù)字簽名類,使用getInstance方法可以獲取對應的簽名算法實例,比如SHA1withRSA算法,需要先獲取私鑰,并通過Signature類的initSign方法初始化簽名實例。接著,讀入文件內(nèi)容,并通過update方法將數(shù)據(jù)傳入簽名實例中。最后,通過sign方法進行簽名,得到簽名結(jié)果。

//使用Java摘要算法進行數(shù)據(jù)校驗
MessageDigest digest = MessageDigest.getInstance("SHA-256");
Path path = Paths.get("test.txt");
byte[] data = Files.readAllBytes(path.toAbsolutePath());
byte[] md5 = digest.digest(data);
StringBuffer stringBuffer = new StringBuffer();
for(byte b: md5){
stringBuffer.append(String.format("%02x", b & 0xff));
}
System.out.println("文件SHA-256摘要: " + stringBuffer.toString());

上述代碼中,MessageDigest類是Java提供的摘要算法類,使用getInstance方法可以獲取對應的哈希算法實例,比如SHA-256算法。然后,讀取文件內(nèi)容,并通過MessageDigest類的digest方法進行數(shù)據(jù)校驗,得到摘要值。最后通過for循環(huán)和StringBuffer類把摘要值的字節(jié)數(shù)組轉(zhuǎn)換為字符串,輸出到控制臺。