Mac*_*096 3 java hash bouncycastle
我目前正在玩 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);
Run Code Online (Sandbox Code Playgroud)
或者,您可以直接使用 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);
Run Code Online (Sandbox Code Playgroud)