Хочу сравнить время выполнения sha256 и "Hmac with sha256".
public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
// TODO code application logic here
byte[] data = {0,3,0,6,0,0,8,0,9,0,0,8,0,0,5,0};
MessageDigest md = MessageDigest.getInstance("SHA-256");
long SHaStart = System.nanoTime();
md.digest(data);
long SHaTime = System.nanoTime() - SHaStart;
System.out.println("SHaTime:"+SHaTime);
}
public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {
// TODO code application logic here
byte[] keyBytes = new byte[]{0,1,2,3,4,5,6,7,8 ,9,10,11,12,13,14,15};
String algorithm = "RawBytes";
SecretKeySpec secretKey = new SecretKeySpec(keyBytes, algorithm);
javax.crypto.Mac mac = javax.crypto.Mac.getInstance("HmacSHA256");
mac.init(secretKey);
byte[] data = {0,3,0,6,0,0,8,0,9,0,0,8,0,0,5,0};
long macStart = System.nanoTime();
mac.doFinal(data);
long MAcTime = System.nanoTime() - macStart;
System.out.println("macTime:"+MAcTime);
}
результат: SHaTime: 489589 и macTime: 180070, как я знаю, caculation sha256 является частью caculation Hmac;так что это должно занять меньше времени.Может ли кто-нибудь помочь мне с этим, пожалуйста?