我目前正在使用Java和哈希。
[我在网上环顾四周时遇到bouncycastle,我将它安装在我的IDE中以及所有内容中。
但是,如何使用here中的算法将其用于散列文本? (查找第5.2节算法)
我只想使用本节中定义的摘要算法:
[GOST3411-MD2-MD4-MD5-MatureMD128 -ERRYMD160 -ERRYMD256 -ERRYMD320-SHA1-SHA-224-SHA-256-SHA-384-SHA-512-SHA3-224-SHA3-256-SHA3-384-SHA3- 512-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,但如果可以的话,最好使用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);