We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Source file: https://github.com/aliyun/aliyun-openapi-java-sdk/blob/master/aliyun-java-sdk-core/src/main/java/com/aliyuncs/auth/signers/HmacSM3Signer.java
new BouncyCastleProvider() is very heavy, BouncyCastleProvider should use as singleton, here is the simple benchmark test code:
new BouncyCastleProvider()
BouncyCastleProvider
import org.bouncycastle.jce.provider.BouncyCastleProvider; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Base64; public class Tt { public static void main(String[] args) throws NoSuchAlgorithmException, InterruptedException { long t1 = System.currentTimeMillis(); for (int i = 0; i < 1000; i++) { String digest = Base64.getEncoder().encodeToString(hash("test".getBytes(StandardCharsets.UTF_8))); AssertUtil.isTrue("VeEukWUNL+xW7HTh0+Tdv84u86ZYkMKhns+IowfnaiM=".equals(digest)); } System.out.println((System.currentTimeMillis() - t1) + " ms"); long t2 = System.currentTimeMillis(); for (int i = 0; i < 1000; i++) { String digest = Base64.getEncoder().encodeToString(hash2("test".getBytes(StandardCharsets.UTF_8))); AssertUtil.isTrue("VeEukWUNL+xW7HTh0+Tdv84u86ZYkMKhns+IowfnaiM=".equals(digest)); } System.out.println((System.currentTimeMillis() - t2) + " ms"); } private static String HASH_SM3 = "SM3"; private static BouncyCastleProvider PROVIDER = new BouncyCastleProvider(); public static byte[] hash(byte[] raw) throws NoSuchAlgorithmException { if (null == raw) { return null; } BouncyCastleProvider provider = new BouncyCastleProvider(); MessageDigest digest = MessageDigest.getInstance(HASH_SM3, provider); return digest.digest(raw); } public static byte[] hash2(byte[] raw) throws NoSuchAlgorithmException { if (null == raw) { return null; } MessageDigest digest = MessageDigest.getInstance(HASH_SM3, PROVIDER); return digest.digest(raw); } }
Outputs:
2760 ms 4 ms
The text was updated successfully, but these errors were encountered:
Thanks for your feedback, we will consider it and reply to you as soon as possible.
Sorry, something went wrong.
No branches or pull requests
Source file: https://github.com/aliyun/aliyun-openapi-java-sdk/blob/master/aliyun-java-sdk-core/src/main/java/com/aliyuncs/auth/signers/HmacSM3Signer.java
new BouncyCastleProvider()
is very heavy,BouncyCastleProvider
should use as singleton, here is the simple benchmark test code:Outputs:
The text was updated successfully, but these errors were encountered: