Cách tạo tập tin được mã hóa kích thước lớn bằng lệnh openssl


8

Trong quá trình tạo tệp được mã hóa trong AIX, tôi đã gặp lỗi này:

$ openssl enc -aes-256-cbc -salt -in test.img -out test.img.enc 

test.img: Value too large to be stored in data type
14221428:error:0200107F:system library:fopen:Value too large to be stored in:bss_file.c:356:fopen('test.img','r')
14221428:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:358:

Kích thước tệp test.img là 35GB

Lệnh tương tự đã làm việc trong Linux cho tệp 100GB.


1
Đây có phải là openssl đi kèm với AIX hay bạn đã cài đặt riêng? Có vẻ như nó không được biên dịch để xử lý các tệp lớn. Biết phiên bản cũng có thể giúp : openssl version.
Jeff Schaller

3
Nó có giúp ích gì không nếu bạn sử dụng các đường ống để ngăn không opensslbiết bất cứ điều gì về kích thước của các tập tin đầu vào và đầu ra? Một cái gì đó giống nhưcat test.img | openssl enc -aes-256-cbc -salt | cat >test.img.enc
Celada

EHLO. Xin vui lòng hiển thị đầu ra từtruss openssl enc -aes-256-cbc -salt -in test.img -out test.img.enc
KWubbufetowicz

Cảm ơn tất cả, CÓ, đó là openssl mặc định đi kèm với AIX - OpenSSL 0.9.8r ngày 8 tháng 2 năm 2011
Daya

2
Bạn có thể đang chạy trong giới hạn 2 GiB / 32 bit - stackoverflow.com/questions/1746751/ mẹo - thử trên một tệp chỉ hơn 2GiB và sau đó là một tệp nằm dưới.
Liczyrzepa

Câu trả lời:


2

Dựa trên lỗi, bản sao của bạn opensslkhông được biên dịch hoặc liên kết với hỗ trợ tệp lớn. fopencó thể thất bại vì nó cố gắng khám phá kích thước của tệp ngay sau khi mở nó và thất bại.

Thủ thuật sau đó là opensslđọc từ ống và ghi vào ống. Ống không có kích thước, và fopenbiết điều này, vì vậy nó sẽ ổn với nó. Những thứ ở đầu kia của các đường ống không cần phải làm bất cứ điều gì lạ mắt, chúng chỉ cần là các bộ lọc thông qua giữa opensslvà các tập tin thực tế. Đó chính xác catlà công việc của họ. cat, hiện trở thành thứ tiếp xúc trực tiếp với tệp lớn, cần phải có hỗ trợ tệp lớn, nhưng là một tiện ích cơ bản do hệ điều hành cung cấp, hãy giả sử rằng nó có.

cat test.img | openssl enc -aes-256-cbc -salt | cat >test.img.enc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.