cipher.AEAD.Seal()을 사용하여 메모리 사용량을 확인하세요.

WBOY
풀어 주다: 2024-02-06 10:03:03
앞으로
963명이 탐색했습니다.

使用 cipher.AEAD.Seal() 查看内存使用情况

질문 내용

Go의 ChaCha20-Poly1305 구현을 사용하여 데이터를 암호화하고 있는데 일부 대용량 파일을 암호화할 때 메모리 사용량이 예상보다 높습니다. 내가 아는 한, Go의 AEAD 암호 구현은 해시를 생성하기 위해 전체 데이터를 메모리에 유지해야 한다는 것을 의미하지만 메모리 사용량은 일반 텍스트 크기의 두 배입니다.

4GiB의 데이터를 암호화하려는 다음 작은 프로그램은 이를 강조합니다(실제 프로그램에서는 keynonce 비어 있으면 안 됨).

으아악

crypto/cipher/gcm.go 소스 코드(AES-GCM 및 ChaCha20-Poly1305 모두에서 사용됨)에 따르면 다음과 같은 설명이 있습니다.

으아악

이것은 메모리를 재사용할 수 있어야 함을 의미합니다. 이 작업을 시도했지만 내 애플리케이션에서 사용하는 메모리 양에는 영향을 미치지 않습니다. 호출한 후에는 Seal() 항상 8GiB의 메모리를 사용하게 됩니다. GiB의 데이터를 암호화하시겠습니까?

으아악

암묵적으로 메모리를 재사용한다면 AEAD 암호가 암호문에 추가하는 상대적으로 작은 해시 외에는 큰 증가를 기 대해서는 안 됩니까?


정답


암호문에 추가된 인증 토큰을 고려하는 것을 잊으셨습니다. 초기 할당에서 공간을 확보하면 추가 할당이 필요하지 않습니다. ​​

으아악

위 내용은 cipher.AEAD.Seal()을 사용하여 메모리 사용량을 확인하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!