Delphi와 함께 MD5 고성능 알고리즘 구현
프로세서 아키텍처 : x86, x64
지원 플랫폼 : Win32, Win64
호환 : HTTPS 및 OPENSSL
파일 지원 : 4G 이상
Maxim Masiutin의 FASTMD5 어셈블러 알고리즘
https://github.com/maximmasiutin/md5_transform-x64
이 64 비트 버전의 주요 장점은 64 바이트의 해시 메시지를 8 64 비트 레지스터 (RBP, R8, R9, R10, R11, R12, R13, R14)에로드하여 경로에서 과도한 메모리로드 작업을 피하는 것입니다.
64 비트 레지스터 (비트 32-63)의 더 높은 비트로 32 비트 값 저장으로 작동하려면 "ROR"을 32로 사용합니다. 8 매크로 변수 (M1-M8)는 레지스터가 ror '되는지 여부에 대한 기록 또는 코트 상태를 유지하는 데 사용됩니다.
또한 두 개의 순차적 추가 대신 LEA 명령을 사용할 수있는 기능이 있지만 (무의미한 USELEA = 1) Skylake 프로세서에서는 느립니다. 또한, 최적화 참조의 인텔은 Maual을 원자 프로세서에서 느리게하기 때문에 LEA를 두 개의 추가로 대체 할 수있게합니다.
MD5_Transform-x64는 이중 라이센스에 따라 릴리스되며 Mozilla Public License 2.0 (https://www.mozilla.org/en-us/2.0/) 또는 2007 년 6 월 29 일자 GNU Lesser General Public License 버전 3에서 사용할 수있는 Mozilla Public License 2.0 (MPL 2.1)에 따라 사용하도록 선택할 수 있습니다 (LGPL 3, LGPL 3, 2007 년 6 월 2 일. https://www.gnu.org/licenses/lgpl.html).
MD5_TRANSFORM-X64는 Peter Sawatzki의 다음 코드를 기반으로합니다.
Peter Sawatzki의 원래 통지는 다음과 같습니다.
FastMD5(@buff[ 0 ], length(buff));
[email protected]의 Delphi 구현
https://github.com/passbyyou888/fastmd5/
2018-1-27