파일을 암호화하고 해독해야하는 앱을 작성 중입니다. 내 문제는 암호 해독이 암호화보다 5 배 정도 느린 것입니다. 모든 파일 읽기/쓰기 작업을 제거하고 암호화 프로세스 만 벤치마킹했습니다. javax의 인스턴스 인AES 암호화와 암호 해독 속도 사이의 이상한 차이
은 (javax.crypto.Cipher에의 인스턴스) encryptionCipher.doFinal()
1.5 MB 바이트 배열
~1600 ms
은 (decryptionCipher.doFinal()
1.5 MB의 바이트 배열을 해독 암호화 : 결과는 매우 놀라웠다 내가 AES 암호 해독 및 암호화는 대칭 PROC입니다 알고 있기 때문에 .crypto.Cipher)
~5800 ms
나는 매우 당황 스럽네요 암호화 및 해독 속도에는 차이가 없어야합니다.
나는 256 비트 키를 가진 AES/CBC/PKCS7Padding
암호를 사용하고 있습니다.
어떻게 될 수 있습니까?
사실 CBC 해독 모드가 암호화보다 빠르지 만 (블록 해독을 병렬 처리 할 수 있어야 함) [CBC 모드] (http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chailable_.28CBC.29)) – sergico
앱을 프로파일 링하여 시간이 얼마나 걸리는지 확인하십시오. 비효율적 인 구현 일 수 있습니다. 또는 앱에 Spongy Castle 제공 업체를 포함시키고 타이밍 로그 문을 추가하십시오. 다른 공급자 (Sun/Oracle, Bouncy Castle 등)가있는 데스크톱 컴퓨터에서 동일한 코드와 비교하십시오. –