RHASH(1) User Manuals RHASH(1) نام (NAME) rhash - محاسبه یا بررسی خلاصه‌پیام‌ها و چِک‌سام‌های CRC32، MD5، SHA1، GOST، TTH، BTIH یا سایر موارد خلاصه دستور (SYNOPSIS) rhash [ option ]... [ file ]... توضیحات (DESCRIPTION) RHash (کوتاه‌شدهٔ Recursive Hasher) خلاصه‌پیام‌ها و چِک‌سام‌های مختلف فایل‌ها را محاسبه و اعتبارسنجی می‌کند. الگوریتم‌های هش پشتیبانی‌شده شامل CRC32، CRC32C، MD4، MD5، SHA1، SHA256، SHA512، SHA3، Tiger، DC++ TTH، BTIH، AICH، ED2K، GOST R 34.11-*، RIPEMD-160، HAS-160، BLAKE2s/BLAKE2b، BLAKE3، EDON-R 256/512، Whirlpool و Snefru-128/256 هستند. این برنامه می‌تواند پیوندهای Magnet و پیوندهای eDonkey ed2k:// را ایجاد و اعتبارسنجی کند؛ گزینه‌های --magnet و --ed2k-link را ببینید. آرگومان خط تیره «-» به عنوان جریان ورودی استاندارد (stdin) تفسیر می‌شود. به‌طور پیش‌فرض rhash مجموع‌ها را تنها با چک‌سام CRC32 و در قالب SFV چاپ می‌کند. این قالب را می‌توان با گزینه‌های --bsd، --magnet، --simple، --printf و --template تغییر داد. برای چاپ تمامی مجموع‌ها از گزینهٔ `-a' استفاده کنید. گزینه‌های حالت برنامه (PROGRAM MODE OPTIONS) حالت پیش‌فرض، چاپ چِک‌سام‌ها برای تمامی فایل‌ها و درخت‌های دایرکتوری مشخص‌شده در خط فرمان است. این حالت را می‌توان با گزینه‌های زیر تغییر داد. -c, --check بررسی فایل‌های هش مشخص‌شده در خط فرمان. RHash می‌تواند فایل‌های هش در قالب‌های SFV و BSD، قالب فایل‌های MD5 و SHA1، و فایل‌های متنی حاوی پیوندهای magnet یا ed2k (یک پیوند در هر خط) را اعتبارسنجی کند. خطوط خالی و خطوطی که با «;» یا «#» آغاز می‌شوند نادیده گرفته می‌شوند. برنامهٔ RHash می‌تواند فایل‌های هشی را که بدون گزینه‌های قالب‌بندی --printf و --template تولید شده‌اند اعتبارسنجی کند. اگر الگوریتم هش توسط گزینه‌های خط فرمان مشخص نشده باشد، RHash تلاش می‌کند الگوریتم را از روی پسوند فایل هش تشخیص دهد. اگر تشخیص ناموفق باشد، تمام توابع هشی که طول هش یکسانی دارند محاسبه می‌شوند که این امر سرعت اعتبارسنجی فایل‌ها را به شدت کاهش می‌دهد. در چنین حالتی، برای افزایش سرعت اعتبارسنجی، الگوریتم هش را به‌طور صریح در خط فرمان مشخص کنید. -u, --update= به‌روزرسانی فایل هش مشخص‌شده از طریق محاسبهٔ خلاصه‌پیام‌ها برای فایل‌های فهرست‌شده در آرگومان‌های فرمان که در آن موجود نیستند. خلاصه‌های جدید در قالبی که توسط گزینه‌های قالب‌بندی مشخص شده به انتهای فایل اضافه می‌شوند. همراه با --recursive، فایل هش را با استفاده از فایل‌های کل درخت‌های دایرکتوری به‌روزرسانی می‌کند. همراه با --check، خلاصه‌های موجود را پیش از به‌روزرسانی اعتبارسنجی می‌کند. --missing= فهرست کردن فایل‌هایی از فایل هش که در سیستم‌فایل مفقود یا غیرقابل دسترسی هستند. --unverified= فهرست کردن فایل‌های خط فرمان که در فایل هش داده‌شده وجود ندارند (فایل‌های اعتبارسنجی‌نشده). همراه با --recursive، کل درخت‌های دایرکتوری را برای یافتن فایل‌های اعتبارسنجی‌نشده بررسی می‌کند. -k, --check-embedded اعتبارسنجی فایل‌ها بر اساس مجموع crc32 تعبیه‌شده در نام آن‌ها. --torrent ایجاد یک فایل تورنت برای هر فایل پردازش‌شده. -h, --help راهنما: نمایش صفحهٔ راهنما و خروج. -V, --version نسخه: نمایش نسخه و خروج. -B, --benchmark اجرای بنچ‌مارک (سنجش کارایی) برای الگوریتم(های) هش انتخاب‌شده. گزینه‌های الگوریتم‌های هش (HASH ALGORITHMS OPTIONS) -C, --crc32 CRC32: انتخاب الگوریتم چِک‌سام CRC32. --crc32c CRC32C: انتخاب الگوریتم چِک‌سام CRC32C. --md4 MD4: انتخاب تابع هش MD4. -M, --md5 MD5: انتخاب تابع هش MD5. -H, --sha1 SHA1: انتخاب تابع هش SHA1. --sha224, --sha256, --sha384, --sha512 انتخاب تابع هش مشخص‌شده از خانوادهٔ SHA2. --sha3-224, --sha3-256, --sha3-384, --sha3-512 انتخاب تابع هش مشخص‌شده از خانوادهٔ SHA3. --tiger Tiger: انتخاب تابع هش Tiger. -T, --tth TTH: انتخاب تابع هش DC++ TTH. --btih BTIH: انتخاب هش اطلاعات بیت‌تورنت (BitTorrent Info Hash). -A, --aich AICH: انتخاب تابع هش AICH. -E, --ed2k ED2K: انتخاب تابع هش eDonkey 2000. -W, --whirlpool Whirlpool: انتخاب تابع هش Whirlpool. -G, --gost12-256 GOST-2012: انتخاب تابع هش ۲۵۶ بیتی GOST R 34.11-2012، استاندارد هش روسی GOST. --gost12-512 GOST-2012: انتخاب تابع هش ۵۱۲ بیتی GOST R 34.11-2012، استاندارد هش روسی GOST. --gost94 GOST-94: انتخاب GOST R 34.11-94، تابع هش منسوخ‌شدهٔ روسی. --gost94-cryptopro GOST-94-CRYPTOPRO: انتخاب نسخهٔ CryptoPro از تابع هش منسوخ‌شدهٔ روسی GOST R 34.11-94. --ripemd160 RIPEMD-160: انتخاب تابع هش RIPEMD-160. --has160 HAS-160: انتخاب تابع هش HAS-160. --snefru128, --snefru256 SNEFRU: انتخاب تابع هش SNEFRU-128/256. --edonr256, --edonr512 EDON-R: انتخاب تابع هش EDON-R 256/512. --blake2b, --blake2s BLAKE2: انتخاب تابع هش BLAKE2b/BLAKE2s. --blake3 BLAKE3: انتخاب تابع هش BLAKE3. -a, --all محاسبهٔ تمامی توابع هش پشتیبانی‌شده. --list-hashes فهرست کردن نام‌های تمامی توابع هش پشتیبانی‌شده، یک مورد در هر خط..SH "گزینه‌های متفرقه (MISCELLANEOUS OPTIONS)" -r, --recursive پردازش بازگشتی دایرکتوری‌های مشخص‌شده در خط فرمان. --follow دنبال کردن پیوندهای نمادین هنگام پردازش بازگشتی فایل‌ها یا دایرکتوری‌ها. -m, --message= محاسبه چکیده‌پیام‌های (message digests) پیام متنی داده‌شده. --file-list= پردازش فایل داده‌شده به عنوان فهرست فایل. خطوط این فایل به عنوان مسیر فایل‌هایی که باید پردازش شوند تفسیر می‌شوند. چندین فهرست فایل را می‌توان در خط فرمان مشخص کرد. -v, --verbose نمایش اطلاعات با جزئیات بیشتر (حالت پرگو). --brief چاپ شکل خلاصه گزارش اعتبارسنجی (بدون سربرگ و پانویس)، هنگام اعتبارسنجی یک فایل هش. -P, --percents نمایش درصدها، هنگام محاسبه یا بررسی مجموع‌ها. --skip-ok عدم چاپ پیام‌های OK برای فایل‌هایی که با موفقیت اعتبارسنجی شده‌اند. --ignore-missing نادیده گرفتن فایل‌های مفقود، هنگام اعتبارسنجی یک فایل هش. -i, --ignore-case نادیده گرفتن بزرگی و کوچکی حروف نام‌فایل‌ها هنگام به‌روزرسانی فایل‌های crc. --speed چاپ سرعت پردازش به تفکیک هر فایل و سرعت کلی. -e, --embed-crc تغییر نام فایل‌ها با درج مقدار مجموع crc32 درون نام آن‌ها. --embed-crc-delimiter= درج مشخص‌شده پیش از مقدار مجموع crc در حالت --embed-crc؛ پیش‌فرض نویسه فاصله (white space) است. می‌تواند یک نویسه یا رشته خالی باشد. --path-separator= استفاده از جداکننده مسیر مشخص‌شده برای نمایش مسیرها. تنها مقادیر اسلش (`/') و بک‌اسلش (`\') پذیرفته می‌شوند. -q, --accept= تنظیم فهرستی جداشده با کاما‐ از پسوند فایل‌ها برای پردازش. --exclude= تنظیم فهرستی جداشده با کاما‐ از پسوند فایل‌ها جهت مستثنی کردن از پردازش. -t, --crc-accept= تنظیم فهرستی جداشده با کاما‐ از پسوند فایل‌های هش جهت اعتبارسنجی. --max-depth= پیمایش حداکثر تا (یک عدد صحیح غیر‐منفی) سطح از دایرکتوری‌های زیر آرگومان‌های خط فرمان. `--max-depth 0' بدان معناست که آزمایش‌ها و اقدامات تنها روی آرگومان‌های خط فرمان اعمال شوند. -o, --output= تنظیم فایل خروجی برای ذخیره چکیده‌پیام‌های محاسبه‌شده یا نتایج اعتبارسنجی در آن. -l, --log= تنظیم فایل لاگ برای ثبت خطاها و اطلاعات مشروح. --openssl= مشخص کردن اینکه کدام توابع هش باید با استفاده از کتابخانه OpenSSL محاسبه شوند. مقدار فهرستی جداشده با کاما از نام توابع هش است، اما تنها مواردی که توسط openssl پشتیبانی می‌شوند مجاز هستند: md4، md5، sha1، sha2*، ripemd160 و whirlpool. --gost-reverse معکوس کردن بایت‌ها در خروجی شانزده‌شانزدهی (hexadecimal) توابع هش GOST. باارزش‌ترین بایت چکیده‌پیام در ابتدا چاپ خواهد شد. ترتیب پیش‌فرض، کم‌ارزش‌ترین بایت در ابتدا است. --bt-batch= فعال کردن حالت دسته‌ای تورنت (حالت تورنت را نیز در بر دارد). محاسبه تورنت دسته‌ای (batch-torrent) برای فایل‌های مشخص‌شده در خط فرمان و ذخیره فایل تورنت در file-path. گزینه -r در این حالت می‌تواند مفید باشد. --bt-private تولید فایل تورنت یا BTIH برای یک ردیاب (تراکر) خصوصی BitTorrent. --bt-transmission تولید فایل تورنت یا BTIH سازگار با کلاینت تورنت Transmission. --bt-piece-length تنظیم مقدار piece length برای فایل تورنت. --bt-announce= افزودن نشانی announce ردیاب به فایل(های) تورنت ایجادشده. چندین نشانی را می‌توان با تعیین مکرر این گزینه اضافه کرد. این گزینه چکیده‌پیام BTIH را تغییر نمی‌دهد. --benchmark-raw تغییر قالب خروجی بنچمارک به صورت یک متن ماشین‐خوان و جداشده با تب‐ شامل نام تابع هش، سرعت، و چرخه‌های پردازنده به ازای هر بایت. این گزینه تنها در صورتی کار می‌کند که گزینه --benchmark مشخص شده باشد. --no-detect-by-ext عدم تشخیص تابع هش از روی پسوند فایل هش، در حالت --check. --no-path-escaping غیرفعال کردن نویسه‌های گریز (escape) در مسیر فایل‌ها. این گزینه می‌تواند در حالت‌های پیش‌فرض، check یا update مشخص شود. -- (double dash) مشخص کردن پایان گزینه‌های خط فرمان. تمام پارامترهای پس از دو خط تیره به عنوان فایل یا دایرکتوری تفسیر می‌شوند. این گزینه معمولاً برای پردازش نام‌فایل‌هایی که با یک خط تیره `-' شروع می‌شوند به کار می‌رود. به عنوان جایگزین می‌توانید './' یا مسیر کامل را پیش از چنین فایل‌هایی مشخص کنید تا دیگر مانند گزینه به نظر نرسند. گزینه‌های قالب خروجی (OUTPUT FORMAT OPTIONS) --sfv چاپ چکیده‌پیام‌ها در قالب خروجی SFV (بررسی ساده فایل یا Simple File Verification) (پیش‌فرض). اما برخلاف فایل معمول SFV، نه‌تنها CRC32، بلکه هر چکیده‌پیام مشخص‌شده توسط گزینه‌ها را می‌توان چاپ کرد. -g, --magnet چاپ چکیده‌پیام‌ها در قالب پیوندهای مگنت (magnet links). --bsd استفاده از قالب خروجی BSD. هر چکیده‌پیام در یک خط جداگانه پس از نام تابع هش و مسیر فایل، محصور در پرانتز چاپ می‌شود. --simple استفاده از قالب خروجی ساده. هر خط شامل نام‌فایل و چکیده‌پیام‌های مشخص‌شده توسط گزینه‌ها خواهد بود. --one-hash چاپ یک چکیده‌پیام در هر خط بدون اطلاعات اضافی فایل. -L, --ed2k-link چاپ پیوند eDonkey شامل نام فایل، اندازه فایل، و چکیده‌پیام‌های ED2K و AICH. --hex چاپ چکیده‌پیام‌ها در قالب شانزده‌شانزدهی (hexadecimal). --base32 چاپ چکیده‌پیام‌ها در قالب Base32. -b, --base64 چاپ چکیده‌پیام‌ها در قالب Base64. --uppercase چاپ چکیده‌پیام‌ها با حروف بزرگ. --lowercase چاپ چکیده‌پیام‌ها با حروف کوچک. --template= خواندن الگوی شبه‐printf از داده‌شده. گزینه --printf را ببینید. -p, --printf= قالب‌بندی: چاپ رشته format در خروجی استاندارد، با تفسیر گریزهای `\' و دستورهای `%'. گریزها و دستورها عبارتند از: \n خط جدید. \r بازگشت به ابتدای سطر (Carriage return). \t تب افقی (Horizontal tab). \\ یک بک‌اسلش لفظی (`\'). \0 نویسه ASCII NUL. \NNN نویسه‌ای که کد اسکی آن در مبنای هشت NNN است. \xNN نویسه‌ای که کد اسکی آن در مبنای شانزده NN است. یک نویسه `\' که پس از آن هر نویسه دیگری بیاید، مانند یک نویسه معمولی در نظر گرفته می‌شود و هر دو چاپ خواهند شد. %% یک علامت درصد لفظی. %p مسیر فایل. %f نام فایل. %d دایرکتوری فایل. %u or %U پیشوندی که برای چاپ نام فایل، مسیر فایل یا چکیده‌پیام خام/base64 به صورت یک رشته کدگذاری‌شده برای نشانی وب (URL‐encoded) استفاده می‌شود. برای مثال: `%up'، `%ud'، `%uf'، `%uBm'، `%u@h'. از %u برای نویسه‌های شانزده‌شانزدهی کوچک و از %U برای بزرگ استفاده کنید. %s اندازه فایل به بایت. %{mtime} زمان آخرین تغییر فایل. %a or %A چکیده‌پیام AICH. %c or %C مجموع مقابله‌ای CRC32. برای نویسه‌های کوچک از %c و برای نویسه‌های بزرگ از %C استفاده کنید. %g or %G چکیده‌پیام ۲۵۶ بیتی GOST R 34.11-2012. %h or %H چکیده‌پیام SHA1. %e or %E چکیده‌پیام ED2K. %l or %L پیوند ed2k://... در EDonkey. %m or %M چکیده‌پیام MD5. %r or %R چکیده‌پیام RIPEMD-160. %t or %T چکیده‌پیام TTH. %w or %W چکیده‌پیام Whirlpool. %{crc32}, %{crc32c}, %{md4}, %{md5}, %{sha1}, %{tiger}, %{tth}, %{btih}, %{ed2k}, %{aich}, %{whirlpool}, %{ripemd160}, %{has160}, %{gost94}, %{gost94-cryptopro}, %{gost12-256}, %{gost12-512}, %{sha-224}, %{sha-256}, %{sha-384}, %{sha-512}, %{sha3-224}, %{sha3-256}, %{sha3-384}, %{sha3-512}, %{edon-r256}, %{edon-r512}, %{blake2s}, %{blake2b}, %{blake3}, %{snefru128}, %{snefru256} چاپ چکیده‌پیام مشخص‌شده. اگر نام تابع هش با یک حرف بزرگ آغاز شود، به صورت حروف بزرگ چاپ می‌شود؛ مانند %{TTH}، %{Sha-512}. %x, %b, %B, %@ استفاده از یکی از این پیشوندها به ترتیب برای چاپ چکیده‌پیام در قالب شانزده‌شانزدهی، base32، base64 یا خام (دودویی)؛ مانند %b{md4}، %BH یا %xT. قالب خروجی پیش‌فرض همچنین می‌تواند با تغییر نام برنامه یا ایجاد یک پیوند سخت/پیوند نمادین به آن با نام‌فایلی شامل رشته‌های `crc32'، `crc32c'، `md4'، `md5'، `sha1'، `sha224'، `sha256'، `sha384'، `sha512'، `sha3-256'، `sha3-512'، `sha3-224'، `sha3-384'، `tiger'، `tth'، `btih'، `aich'، `ed2k'، `ed2k-link'، `gost12-256'، `gost12-512'، `gost94'، `gost94-cryptopro'، `rmd160'، `has160'، `whirlpool'، `edonr256'، `edonr512'، `blake2s'، `blake2b'، `blake3'، `snefru128'، `snefru256'، `sfv'، `bsd' یا `magnet' تغییر داده شود..SH "فایل پیکربندی (CONFIG FILE)" برنامه RHash به دنبال یک فایل پیکربندی در $XDG_CONFIG_HOME/rhash/rhashrc، $HOME/.config/rhash/rhashrc، $XDG_CONFIG_DIRS/rhash/rhashrc، $HOME/.rhashrc و /etc می‌گردد. فایل پیکربندی از خطوطی با قالب زیر تشکیل شده است: variable = value که در آن variable می‌تواند نام هر یک از گزینه‌های خط فرمان باشد، مانند magnet، printf، percents و غیره. یک متغیر بولی می‌تواند با مقدار “on”،‏ “yes” یا “true” روی true تنظیم شود، هر مقدار دیگری متغیر را روی false تنظیم می‌کند. خطوط خالی و خطوطی که با “#” یا “;” آغاز می‌شوند نادیده گرفته می‌شوند. نمونه فایل پیکربندی: # این یک خط توضیح است percents = on crc-accept = .sfv,.md5,.sha1,.sha256,.sha512,.tth,.magnet نویسندگان (AUTHORS) Aleksey Kravchenko همچنین ببینید (SEE ALSO) md5sum(1) cksfv(1) ed2k_hash(1) گزارش باگ‌ها (BUGS) از ارسال گزارش باگ‌ها استقبال می‌شود! آن‌ها را در صفحهٔ مسائل GitHub ثبت کنید: https://github.com/rhash/RHash/issues Linux APR 2010 RHASH(1)