AGE-PLUGIN-BATCHPASS(1) General Commands Manual AGE-PLUGIN-BATCHPASS(1)

age-plugin-batchpass - افزونه رمزنگاری غیرتعاملی با عبارت عبور برای age(1)

age -e -j batchpass
age -d -j batchpass

age-plugin-batchpass یک افزونه برای age(1) است که رمزگذاری و رمزگشایی غیرتعاملی بر پایه عبارت عبور (passphrase) را با استفاده از متغیرهای محیطی امکان‌پذیر می‌سازد.

این قابلیت به صورت پیش‌فرض در CLI ابزار age تعبیه نشده است زیرا بیشتر برنامه‌ها باید به جای اسکریپت‌نویسی رمزنگاری مبتنی بر عبارت عبور، از کلیدهای بومی استفاده کنند.

انسان‌ها معمولاً در به‌خاطر سپردن و ساختن عبارت‌های عبور قوی ضعیف هستند. ابزار age از الگوریتم scrypt برای کاهش نسبی این مشکل استفاده می‌کند که ذاتاً بسیار کند است.

اگر در هر صورت قرار است رایانه کار به‌خاطر سپردن را انجام دهد، می‌توانید و باید به جای آن از کلیدهای بومی استفاده کنید. نیازی به مدیریت کلیدهای عمومی و خصوصی مجزا نیست؛ شما مستقیماً با کلید خصوصی رمزنگاری می‌کنید:

$ age-keygen -o key.txt
$ age -e -i key.txt file.txt > file.txt.age
$ age -d -i key.txt file.txt.age > file.txt

به همین ترتیب، می‌توانید یک رشته هویت بومی را در یک متغیر محیطی یا از طریق سامانه مدیریت اسرار CI خود ذخیره کرده و از آن برای رمزنگاری و رمزگشایی غیرتعاملی فایل‌ها استفاده کنید:

$ export AGE_SECRET=$(age-keygen)
$ age -e -i <(echo "$AGE_SECRET") file.txt > file.txt.age
$ age -d -i <(echo "$AGE_SECRET") file.txt.age > file.txt

همچنین ابزار خط فرمان age به صورت بومی از فایل‌های هویتی محافظت‌شده با عبارت عبور پشتیبانی می‌کند، بنابراین می‌توانید از این قابلیت برای رمزنگاری غیرتعاملی چند فایل استفاده کنید، به طوری که بعداً بتوانید آن‌ها را با وارد کردن همان عبارت عبور رمزگشایی نمایید:

$ age-keygen -pq | age -p -o encrypted-identity.txt
Public key: age1pq1cd[... 1950 more characters ...]
Enter passphrase (leave empty to autogenerate a secure one):
age: using autogenerated passphrase "eternal-erase-keen-suffer-fog-exclude-huge-scorpion-escape-scrub"
$ age -r age1pq1cd[... 1950 more characters ...] file.txt > file.txt.age
$ age -d -i encrypted-identity.txt file.txt.age > file.txt
Enter passphrase for identity file "encrypted-identity.txt":

در نهایت، هنگام استفاده از این افزونه باید دقت شود که گذرواژه در تاریخچه شل ذخیره نشود یا در سیستم‌های چندکاربره برای سایر کاربران فاش نگردد.

عبارت عبور مورد استفاده برای رمزنگاری یا رمزگشایی. مانعة‌الجمع با AGE_PASSPHRASE_FD.
شماره توصیف‌گر فایل (file descriptor) برای خواندن عبارت عبور از آن. کاراکترهای خط جدید پایانی از محتوای فایل حذف می‌شوند. مانعة‌الجمع با AGE_PASSPHRASE.
ضریب کار scrypt در زمان رمزگذاری. باید بین ۱ تا ۳۰ باشد. مقدار پیش‌فرض ۱۸ است. مقادیر بالاتر امنیت بیشتری دارند اما کندتر هستند. ابزار age از رمزگشایی فایل‌های با ضریب بالای ۲۲ خودداری می‌کند، و این افزونه نیز همین رویه را دارد مگر آنکه AGE_PASSPHRASE_MAX_WORK_FACTOR حداقل برابر با همان مقدار تعیین شده باشد.
حداکثر ضریب کار scrypt قابل قبول در زمان رمزگشایی. باید عددی بین ۱ تا ۳۰ باشد. مقدار پیش‌فرض ۲۲ است. می‌تواند برای اجتناب از فرایندهای بسیار طولانی رمزگشایی یا برعکس برای مجاز دانستن آن‌ها به کار رود.

رمزگذاری یک فایل با عبارت عبور:

$ AGE_PASSPHRASE=secret age -e -j batchpass file.txt > file.txt.age

رمزگشایی یک فایل با عبارت عبور:

$ AGE_PASSPHRASE=secret age -d -j batchpass file.txt.age > file.txt

خواندن عبارت عبور از یک توصیف‌گر فایل:

$ AGE_PASSPHRASE_FD=3 age -e -j batchpass file.txt 3< passphrase.txt > file.txt.age

age(1)

Filippo Valsorda age@filippo.io

August 2026