2015-04-04 47 views
1

我目前正在玩Java和哈希。如何使用BouncyCastle计算消息摘要?

我在网上浏览时遇到了bouncycastle,我将它安装在我的IDE和所有东西中。

但是,如何使用它发现一个文本使用发现的算法here? (查找5.2节算法)

我只希望使用的摘要算法,本节规定:

GOST3411 - MD2 - MD4 - MD5 - RipeMD128 - RIPEMD160 - RipeMD256 - RipeMD320 - SHA1 - SHA -224 - SHA-256 - SHA-384 - SHA-512 - SHA3-224 - SHA3-256 - SHA3-384 - SHA3-512 - Skein-256 - * - Skein-512 - * Skein-1024 - * - Tiger - 惠而浦

回答

2

鉴于原始问题的澄清,我已经完全编辑了我的答案。要使用SHA-512摘要算法对字符串进行散列处理,您需要使用JVM注册BouncyCastle,然后您可以直接使用Java API或BouncyCastle类。

E.g.的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); 
+0

好了,我不想使用分组密码,我只想用摘要交易算法。 – Mackan90096 2015-04-04 14:11:36

+0

@ artjom-b我不推荐任何东西,它只是一个关于如何构建完整算法的例子,未来的读者请不要将此作为推荐实践的建议。 – devonlazarus 2015-04-04 15:48:03

+0

@ArtjomB。编辑问题 – Mackan90096 2015-04-04 16:38:57