» נושאי לימוד
» נושאי לימוד
יום חמישי 28 במרץ 2024
פונקציות הצפנה
דף ראשי  מילון מונחים  פונקציות ואופרטורים  פונקציות נוספות  פונקציות הצפנה גרסה להדפסה

(AES_ENCRYPT(string,key_string

(AES_DECRYPT(string,key_string

הפונקציות הללו מאפשרות הצפנה/פענוח של נתונים באמצעות האלגוריתם הרשמי AES

(Advanced Encryption Stanard). משתמשים בהצפנה עם מפתח באורך 128 ביטים, אבל ניתן להרחיבו ל-256 ביטים ע"י שינוי המקור. אנו בוחרים בהצפנה של 128 ביטים בגלל שהיא יותר מהירה ומאובטחת בצורה מספקת. הארגומנטים בקלט יכולים להיות באורך כלשהו. אם אחד מהארגומנטים הוא NULL, התוצאה תהיה גם NULL. שום ש-AES הוא אלגוריתם block-level (סרגל פלס), משתמשים ב"ריפוד" כדי להצפין מחרוזות באורך לא זוגי ולכן אורך המחרוזת בתוצאה יכולה להיות מחושבת כ- 16*(trunc(string_length/16)+1). אם הפונקציה ()AES_DECRYPT מבחינה בנתון לא חוקי או ב"ריפוד" שגוי, היא מחזירה NULL. אולם, הפונקציה יכולה להחזיר ערך NON-NULL (כנראה "זבל") אם נתוני הקלט או המפתח אינם חוקיים. ניתן להשתמש בפונקציות AES כדי לאחסן מידע בצורה מוצפנת באמצעות עדכון השאילתות:

 

 
      ;(('INSERT INTO t VALUES (1,AES_ENCRYPT('text','password

 

ע"י אי שליחת המפתח בקשר שנוצר לכל שאילתא ניתן לקבל יותר אבטחה. ניתן לבצע זאת ע"י אחסון המפתח בשרת משני משתנה בזמן הקשר שנוצר.

לדוגמא:

 

 
     SELECT @password:='my password';
     INSERT INTO t VALUES (1,AES_ENCRYPT('text',@password)); 

 

(DECODE(crypt_str,pass_str

מצפין ומפענח מחרוזת crypt_str באמצעות pass_str כסיסמא. Crypt_str צריכה להיות מחרוזת שהוחזרה מהפונקציה ()ENCODE .

 

(DECODE(str,pass_str

מצפין את str באמצעות pass_str כסיסמא. כדי לפענח את התוצאה, נשתמש ב-()DECODE . התוצאה היא מחרוזת בינארית באורך זהה ל-string. כאשר נרצה לשמור את זה בעמודה, נשתמש בסוג העמודה BLOB.

 

([DES_DECRYPT(string_to_decrypt [,key_string

מפענח מחרוזת שהוצפנה באמצעות הפונקציה ()DES_ENCRYPT .אם לא סופק הארגומנט key_string, הפונקציה ()DES_DECRYPT תבחן את ה-byte הראשון של המחרוזת המוצפנת כדי לקבוע את מספר מפתח ה-DES שהשתמשו בו כדי להצפין את המחרוזת המקורית, ואז הוא יקרא את המפתח מ-des-key-file כדי לפענח את ההודעה. לפעולה זו, למשתמש צריך להיות הרשאות SUPER. אם נשתמש בפונקציה זו עם הארגומנט key_string, ישתמשו בארגומנט זה כדי לפענח את ההודעה. אם string_to_decrypt לא נראית כמחרוזת מוצפנת, MYSQL יחזיר את המחרוזת שניתנה, string_to_decrypt. במקרה של שגיאה, הפונקציה תחזיר NULL.

 

([(DES_ENCRYPT(string_to_encrypt[,(key_number,key_string

מצפין את המחרוזת ע"י המפתח שניתן, באמצעות אלגוריתם Tripe-DES. מפתח ההצפנה נבחר בצורה הבאה:

 

ארגומנט

תיאור

ארגומנט בודד

משתמשים במפתח הראשון מתוך des-key-file. 

מספר מפתח משתמשים במפתח הנתון (0-9) מתוך des-key-file.
מחרוזת משתמשים ב-key_string הנתון כדי להצפין את string_to_encrypt.

 

המחרוזת שתוחזר תהיה מחרוזת בינארית כאשר התו הראשון יהיה CHAR

(128 | key_number). ה-128 נוסף כדי להצליח בקלות יותר להבחין במפתח מוצפן. אם נשתמש במפתח מחרוזת, key_number יהיה 127. במקרה של שגיאה, הפונקציה תחזיר NULL. אורך המחרוזת בתוצאה יהיה new_length שאורכו מחושב ע"י הפונקציה:

org_length+(8-(org_length%8))+1. ל-des-key-file יהיה הפורמט הבא:

 

 

key_number des_key_string

key_number des_key_string 
 

 

 

 

 

 

 

 

 

כל key_number חייב להיות מספר בטווח של 0 עד 9. שורות בקובץ יכולות בסדר כלשהו. Des_key_string היא מחרוזת שמשתמשים בה כדי להצפין את ההודעה. בין המספר והמפתח צריך להיות לפחות מרווח אחד. המפתח הראשון הוא ברירת המחדל שייעשה בו שימוש כאשר לא נגדיר את ארגומנט המפתח ב-()DES_ENCRYPT .

 

 

mysql> SELECT customer_address FROM customer_table WHERE

        crypted_credit_card = DES_ENCRYPT("credit_card_number");

 

 

 

 

 

 

 

([ENCRYPT(str [,salt

מצפין את str באמצעות קריאת המערכת ()crypy של UNIX. ארגומנט ה-salt צריך להיות מחרוזת בעלת שני תווים.

 

 

mysql> SELECT ENCRYPT("hello");

        -> 'VxuFAJXVARROc'

 

()ENCRYPT מתעלם מהכל למעט שמונת התווים הראשונים של str, לפחות בכמה מערכות. התנהגות זו נקבעת ע"י יישום קריאת המערכת המעורפלת ()crypt.בגלל זה אנו ממליצים להשתמש ב-()MD5 או ב-()SHA1 במקום.

 

(MD5(string

מחשב את בדיקת מספר הסיביות MD5 128-bit למחרוזת. הערך מוחזר כ-32 ספרות ב-hex.

 

 

mysql> SELECT MD5("testing");

        -> 'ae2b1fca515949e5d54fb22b8ed95575'

 

(PASSWORD(str

(OLD_PASSWORD(str

מחשב את מחרוזת הסיסמא מ-str. זו הפונקציה שמשתמשים בה להצפין סיסמאות MYSQL כדי לאחסן בטור ה-password בטבלה של user:

 

 

mysql> SELECT PASSWORD('badpwd');

        -> '7f84554057dd964b'

 

הצפנה באמצעות ()PASSWORD היא בלתי הפיכה. ()PASSWORD לא מבצעת את הצפנת הסיסמא באותה דרך שסיסמאות UNIX מוצפנות.

 

(SHA1(string

(SHA(string

מחשב את בדיקת מספר הסיביות SHA1 160-bit למחרוזת. הערך מוחזר כ-40 ספרות ב-hex, או כ-NULL במקרה וארגומנט הקלט היה גם NULL.

 

 

mysql> SELECT SHA1("abc");

        -> 'a9993e364706816aba3e25717850c26c9cd0d89d'

 

 

 11-04-04 / 15:25  עודכן ,  17-03-04 / 12:56  נוצר ע"י אלי אלוני בתאריך 
 פונקציות על סיביות - הקודםהבא - פונקציות מידע 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 3