.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2000, Nicolás Lichtmaier .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH encrypt 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم encrypt, setkey, encrypt_r, setkey_r \- تعمية رسائل بطول 64 بت .SH المكتبة مكتبة تجزئة كلمة السر (\fIlibcrypt\fP،\ \fI\-lcrypt\fP) .SH موجز .nf \fB#define _XOPEN_SOURCE\fP /* انظر feature_test_macros(7) */ \fB#include \fP .P \fB[[deprecated]] void encrypt(char \fP\fIblock\fP\fB[64], int \fP\fIedflag\fP\fB);\fP .P \fB#define _XOPEN_SOURCE\fP /* See feature_test_macros(7) */ \fB#include \fP .P \fB[[deprecated]] void setkey(const char *\fP\fIkey\fP\fB);\fP .P \fB#define _GNU_SOURCE\fP /* See feature_test_macros(7) */ \fB#include \fP .P \fB[[deprecated]] void setkey_r(const char *\fP\fIkey\fP\fB, struct crypt_data *\fP\fIdata\fP\fB);\fP \fB[[deprecated]] void encrypt_r(char *\fP\fIblock\fP\fB, int \fP\fIedflag\fP\fB,\fP \fB struct crypt_data *\fP\fIdata\fP\fB);\fP .fi .SH الوصف تعمي هذه الدوال وترجع رسائل بطول 64 بت. تضبط الدالة \fBsetkey\fP() المفتاح المستخدم بواسطة \fBencrypt\fP(). معامل \fIkey\fP المستخدم هنا هو مصفوفة من 64 بايت، لكل منها قيمة عددية 1 أو 0. تُتجاهل البايتات key[n] حيث n=8*i\-1، لذا يكون طول المفتاح الفعلي 56 بت. .P تعدل الدالة \fBencrypt\fP() المخزن المؤقت الممرر، مع ترميز إذا كان \fIedflag\fP هو 0، وفك ترميز إذا مُرر 1. مثل معامل \fIkey\fP، فإن \fIblock\fP هو تمثيل متجه بت للقيمة الفعلية التي تُعمى. يُعاد الناتج في نفس المتجه. .P هاتان الدالتان غير قابلتين لإعادة الدخول، أي أن بيانات المفتاح تُحفظ في تخزين ثابت. الدالتان \fBsetkey_r\fP() و \fBencrypt_r\fP() هما النسختان القابلتان لإعادة الدخول. تستخدمان البنية التالية لحفظ بيانات المفتاح: .P .in +4n .EX struct crypt_data { char keysched[16 * 8]; char sb0[32768]; char sb1[32768]; char sb2[32768]; char sb3[32768]; char crypt_3_buf[14]; char current_salt[2]; long current_saltbits; int direction; int initialized; }; .EE .in .P قبل استدعاء \fBsetkey_r\fP() اضبط \fIdata\->initialized\fP على صفر. .SH "قيمة الإرجاع" لا تُرجع هذه الدوال أي قيمة. .SH الأخطاء اضبط \fIerrno\fP على صفر قبل استدعاء الدوال أعلاه. عند النجاح، يبقى \fIerrno\fP دون تغيير. .TP \fBENOSYS\fP الدالة غير متوفرة. (مثلاً بسبب قيود التصدير الأمريكية السابقة.) .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBencrypt\fP(), \fBsetkey\fP() T} سلامة الخيوط غير آمن للمسارات المتعددة (MT\-Unsafe) سباق:crypt T{ .na .nh \fBencrypt_r\fP(), \fBsetkey_r\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير .TP \fBencrypt\fP() .TQ \fBsetkey\fP() POSIX.1\-2008. .TP \fBencrypt_r\fP() .TQ \fBsetkey_r\fP() لا شيء. .SH التاريخ أُزيلت في glibc 2.28. .P لأنها تستخدم المُعمِّي الكتلي DES، الذي لم يعد يُعتبر آمنًا، أُزيلت هذه الدوال من glibc. يجب على التطبيقات التحول إلى مكتبة تشفير حديثة، مثل \fBlibgcrypt\fP. .TP \fBencrypt\fP() .TQ \fBsetkey\fP() POSIX.1\-2001، SUS، SVr4. .SS "التوفر في glibc" انظر \fBcrypt\fP(3). .SS "الميزات في glibc" في glibc 2.2، تستخدم هذه الدوال خوارزمية DES. .SH أمثلة .\" SRC BEGIN (encrypt.c) .EX #define _XOPEN_SOURCE #include #include #include #include \& int main(void) { char key[64]; char orig[9] = "eggplant"; char buf[64]; char txt[9]; \& for (size_t i = 0; i < 64; i++) { key[i] = rand() & 1; } \& for (size_t i = 0; i < 8; i++) { for (size_t j = 0; j < 8; j++) { buf[i * 8 + j] = orig[i] >> j & 1; } setkey(key); } printf("Before encrypting: %s\[rs]n", orig); \& encrypt(buf, 0); for (size_t i = 0; i < 8; i++) { for (size_t j = 0, txt[i] = \[aq]\[rs]0\[aq]; j < 8; j++) { txt[i] |= buf[i * 8 + j] << j; } txt[8] = \[aq]\[rs]0\[aq]; } printf("After encrypting: %s\[rs]n", txt); \& encrypt(buf, 1); for (size_t i = 0; i < 8; i++) { for (size_t j = 0, txt[i] = \[aq]\[rs]0\[aq]; j < 8; j++) { txt[i] |= buf[i * 8 + j] << j; } txt[8] = \[aq]\[rs]0\[aq]; } printf("After decrypting: %s\[rs]n", txt); exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" \fBcbc_crypt\fP(3)، \fBcrypt\fP(3)، \fBecb_crypt\fP(3) .\" .BR fcrypt (3) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .