כיצד להצפין ולפענח מחרוזת ב-PHP?

Kyzd Lhzpyn Wlp Nh Mhrwzt B Php



הצפנה הוא תהליך המרת נתונים לקוד סודי או לפורמט שאינו מובן למי שאין לו את המפתח לפענח אותו. פענוח הוא הנוהל לנטילת מידע זה והחזרתו לפורמט המקורי והקריא שלו. ב-PHP, הצפנה, ו פענוח ניתן להשתמש כדי להגן על נתונים רגישים, כגון סיסמאות, פרטי כרטיסי אשראי ונתונים אישיים אחרים.

ה הצפנה האלגוריתם צריך לקלוט מחרוזת נתונים שברצונך להצפין ולהשתמש בשיטת ההצפנה הנבחרת כדי להצפין את הנתונים. לאחר מכן האלגוריתם אמור להחזיר את הנתונים המוצפנים בפורמט שניתן לאחסן במסד נתונים או בקובץ.

ל לפענח את הנתונים, עליך להשתמש באותה שיטת הצפנה כדי לפענח את הנתונים ששימשו להצפנתם. המשמעות היא שתצטרך לאחסן את המפתח במקום כלשהו כדי שתוכל להשתמש בו כדי לפענח את הנתונים מאוחר יותר.







כיצד להצפין ולפענח מחרוזת PHP?

מחרוזת PHP יכולה להיות מוצפן ו מפוענח משתמש ב openssl_encrpyt() ו openssl_decrypt() שיטות, בהתאמה.



הצפנת מחרוזת באמצעות פונקציית openssl_encrypt()

ל להצפין מחרוזת ב-PHP באמצעות ה openssl_encrypt() פונקציה, עליך לספק את מחרוזת הטקסט הפשוט, את שיטת ההצפנה ומפתח. הפונקציה תחזיר את הנתונים המוצפנים, שאותם תוכל לאחסן או לשדר בצורה מאובטחת.



התחביר עבור openssl_encrypt() השיטה היא:





מחרוזת openssl_encrypt ( חוּט $data , חוּט $שיטה , חוּט מפתח $ , $options = 0 , חוּט $iv , חוּט $tag = ריק , חוּט $ אתה , int $tag_length = 16 )
  • $data: המחרוזת או הנתונים שברצונך להצפין.
  • $method: שיטת ההצפנה או הצופן שבה ברצונך להשתמש. אתה יכול לקבל רשימה של שיטות צופן נתמכות על ידי שימוש ב- openssl_get_cipher_methods()
  • מפתח $: מפתח ההצפנה שישמש להצפנת הנתונים. זה צריך להיות מחרוזת באורך ובאקראיות מתאימים, בהתבסס על שיטת הצופן שנבחרה.
  • $options: פרמטר אופציונלי שיכול לכלול דגלים נוספים עבור אפשרויות הצפנה ספציפיות. אתה יכול לשלב דגלים באמצעות או (|) דגלים נפוצים כוללים OPENSSL_RAW_DATA ו OPENSSL_ZERO_PADDING .
  • $iv: וקטור האתחול (iv) המשמש להצפנה; זה צריך להיות ערך אקראי וייחודי, מסופק כמחרוזת.
  • $tag: פרמטר אופציונלי המשמש עבור מצבי צופן AEAD (Authenticated Encryption with Associated Data), כגון GCM (Galois/Counter Mode) או CCM (Counter with CBC-MAC). הוא מאחסן את תג האימות שנוצר במהלך ההצפנה.
  • שֶׁלְךָ: נתונים מאומתים נוספים שניתן להשתמש בהם עבור מצבי צופן AEAD.
  • $tag_length: אורך תג האימות. עבור מצב GCM, אורך התג נע בין 4 ל-16 בתים.

לדוגמה:


$simple_string = 'ברוכים הבאים ל-Linuxhint \n ' ;
הֵד 'מחרוזת מקורית:' . $simple_string ;
הצפנת $ = 'AES-128-CTR' ;
$iv_length = openssl_cipher_iv_length ( הצפנת $ ) ;
$options = 0 ;
$encryption_iv = '1234567891011121' ;
$encryption_key = 'לינוקס' ;
הצפנה $ = openssl_encrypt ( $simple_string , הצפנת $ ,
$encryption_key , $options , $encryption_iv ) ;
הֵד 'מחרוזת מוצפנת:' . הצפנה $ . ' \n ' ;
?>

הקוד מכריז תחילה על הטקסט הבסיסי 'ברוכים הבאים ל-Linuxhint' ומשתמש בפקודה echo כדי להציג אותו. לאחר מכן, הוא מציין את אלגוריתם ההצפנה שיש להשתמש בו, AES-128-CTR . הוא גם משתמש ב- openssl_cipher_iv_length() פונקציה לחישוב גודל ה וקטור אתחול (IV) נחוץ לצופן הזה.



הקוד קובע את ההצפנה iv ערך ל '1234567891011121' ומפתח ההצפנה ל 'לינוקס' . המחרוזת המוצפנת מוצגת לאחר מכן באמצעות פקודת ההד לאחר שההצפנה הושלמה באמצעות ה- openssl_encrypt() פוּנקצִיָה. בשל וקטור האתחול האקראי המשמש להצפנה, המחרוזת המוצפנת הסופית תשתנה בכל פעם.

פענוח מחרוזת באמצעות פונקציית openssl_decrypt()

כדי לפענח מחרוזת ב-PHP, אתה יכול להשתמש ב- openssl_decrypt() פוּנקצִיָה. פונקציה זו לוקחת את הנתונים המוצפנים, שיטת ההצפנה והמפתח כקלט ומחזירה את הטקסט הפשוט המפוענח.

התחביר עבור openssl_decrypt() השיטה היא:

מחרוזת openssl_decrypt ( חוּט $data , חוּט $שיטה , חוּט מפתח $ , int $options = 0 , חוּט $iv , חוּט $tag , חוּט $ אתה )

הארגומנטים שהועברו לפונקציה הם:

  • $data: המחרוזת או הנתונים המוצפנים שברצונך לפענח.
  • $method: שיטת ההצפנה או הצופן המשמשים במהלך ההצפנה. אתה יכול לקבל רשימה של שיטות צופן נתמכות על ידי שימוש ב- openssl_get_cipher_methods()
  • מפתח $: מפתח ההצפנה ששימש להצפנת הנתונים. זה צריך להתאים למפתח המשמש במהלך ההצפנה.
  • $options: פרמטר אופציונלי שיכול לכלול דגלים נוספים עבור אפשרויות פענוח ספציפיות. ניתן לשלב דגלים באמצעות האופרטור OR (|) בכיוון סיביות. דגלים נפוצים כוללים OPENSSL_RAW_DATA ו OPENSSL_ZERO_PADDING .
  • $iv: ה וקטור אתחול (IV) בשימוש במהלך ההצפנה. זה צריך להיות אותו IV ששימש במהלך ההצפנה והועבר כמחרוזת.
  • $tag: תג האימות עבור מצבי צופן AEAD (Authenticated Encryption with Associated Data), כגון GCM (Galois/Counter Mode) או CCM (Counter with CBC-MAC). אם האימות נכשל, openssl_decrypt() יחזיר FALSE.
  • שֶׁלְךָ: נתונים מאומתים נוספים ששימשו במהלך ההצפנה עבור מצבי צופן AEAD.

ערך החזרה: אם מצליח, הוא מחזיר את המחרוזת המפוענחת; אחרת, הוא מחזיר FALSE.

לדוגמה:


$encrypted_string = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
הֵד 'מחרוזת מוצפנת:' . $encrypted_string . ' \n ' ;
$decryption_iv = '1234567891011121' ;
הצפנת $ = 'AES-128-CTR' ;
$options = 0 ;
$decryption_key = 'לינוקס' ;
$פענוח = openssl_decrypt ( $encrypted_string , הצפנת $ ,
$decryption_key , $options , $decryption_iv ) ;
הֵד 'מחרוזת מפוענחת:' . $פענוח ;
?>

אורך הווקטור בקוד זה מחושב באמצעות ה- openssl_cipher_iv_length() פונקציה, ואותם הצפנה iv ופרמטרים מפתח משמשים במהלך ההצפנה. אלגוריתם ההצפנה מוגדר כ AES-128-CTR .

המחרוזת שהוצפנה קודם לכן מפוענחת באמצעות אלגוריתם ההצפנה, מפתח ההצפנה, ההגדרות וערכי IV על ידי openssl_decrypt() פוּנקצִיָה. הטקסט המפוענח שנוצר מוצג לאחר מכן באמצעות פקודת ההד.

סיכום

יצירת אתרים כרוכה לעיתים קרובות הצפנה ופענוח נתונים. על ידי שימוש בהצפנה כדי להגן על נתונים רגישים, תוכל להימנע מחשיפת המשתמשים שלך לגניבת זהות, הונאה ואיומי אבטחה אחרים. מחרוזות ב-PHP ניתנות להצפנה ולפענוח על ידי הפונקציות openssl_encrypt() ו openssl_decrypt() פונקציות. על ידי שימוש בזהירות באלגוריתם ההצפנה והמפתח, אתה יכול ליצור מערכת חזקה ומאובטחת לטיפול בנתונים רגישים ביישומי PHP שלך.