簡體   English   中英

如何使用 BouncyCastle 計算消息摘要?

[英]How to use BouncyCastle for calculating Message Digests?

我目前正在玩 Java 和散列。

我在網上環顧四周時遇到了bouncycastle ,我把它安裝在我的 IDE 和所有東西中。

但是,如何使用此處找到的算法使用它來散列文本? (查找第 5.2 節算法)

我只想使用本節中定義的摘要算法:

GOST3411-MD2-MD4-MD5-RipeMD128-RipeMD160-RipeMD256-RipeMD320-SHA1-SHA-224-SHA-256-SHA-384-SHA-512-SHA3-224-SHA3-2586-SHA3-SHA2 Skein-256-* - Skein-512-* - Skein-1024-* - Tiger - Whirlpool

鑒於原始問題的澄清,我已經完全編輯了我的答案。 要使用 SHA-512 摘要算法對字符串進行哈希處理,您需要向 JVM 注冊 BouncyCastle,然后,您可以直接使用 Java API 或 BouncyCastle 類。

例如 Java API

// register the BouncyCastleProvider with the Security Manager
Security.addProvider(new BouncyCastleProvider());

String plainString = "Plaintext Secret";

MessageDigest messageDigest = MessageDigest.getInstance("SHA-512");
byte[] hashedString = messageDigest.digest(plainString.getBytes());

doSomething().with(hashedString);

或者,您可以直接使用 BouncyCastle API,但如果可以的話,最好 (IMO) 使用 Java API 來實現可移植性。 (如果您發現一個比 BouncyCastle 更好的庫怎么辦?令人懷疑,但您明白這一點。)

Security.addProvider(new BouncyCastleProvider());

String plainString = "Plaintext Secret";

// instantiate the BouncyCastle digest directly.
MessageDigest messageDigest = new SHA512Digest();
byte[] hashedString = messageDigest.digest(plainString.getBytes());

doSomething().with(hashedString);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM