در جدول زیر برخی از توابع کاربردی معرفی شده است :
نام | توضیحات |
()AES_ENCRYPT | رمزنگاری بر اساس الگوریتم AES |
()AES_DECRYPT | رمزگشایی بر اساس الگوریتم AES |
()COMPRESS | نتیجه را به عنوان یک رشته باینری فشرده برمیگرداند |
()UNCOMPRESS | خروجی تابع COMPRESS را از حالت فشردگی خارج میکند |
()MD5 | محاسبه مقدار هش الگوریتم MD5 |
()SHA1 | محاسبه درهم سازی 160 بیتی یک رشته با الگوریتم SHA1 |
()SHA2 | محاسبه هش یک رشته با الگوریتم SHA2 |
VALIDATE_PASSWORD_STRENGTH | تعیین قدرت رمز عبور |
()RANDOM_BYTES | برگرداندن بایت های تصادفی براساس طول ورودی |
AES_ENCRYPT و AES_DECRYPT :
بر اساس الگوریتم AES یا (Advanced Encryption Standard) که قبلا به عنوان الگوریتم "Rijndael" شناخته میشد ورودی را رمزنگاری و رمزگشایی میکنند ، طول کلید پیش فرض برای رمزنگاری در این الگوریتم 128 بیت است .
تابع AES_ENCRYPT دو پارامتر اولیه را دریافت میکند ، پارامتر اول رشته ای که قرار است رمزنگاری شود و پارامتر دوم کلید رمزنگاری :
SELECT AES_ENCRYPT("RezaEskandari",UNHEX(123456));
-> 0xd12b819377e7face168a3d3bbed83c6b
حال میتوان رشته رمزنگاری شده را با استفاده از تابع AES_DECRYPT و پاس دادن کلید رمزنگاری ، رمزگشایی نمود :
SELECT AES_DECRYPT(0xd12b819377e7face168a3d3bbed83c6b,UNHEX(123456));
->RezaEskandari
COMPRESS - UNCOMPRESS :
COMPRESS یک رشته را فشرده و نتیجه را به عنوان رشته باینری باز می گرداند این تابع برای کار نیاز به کتابخانه zlib دارد ، واگرنه خروجی را به صورت NULL برمیگرداند .
SELECT COMPRESS('ABCD0123');
-> 0x08000000789c7374727631303432060008ae01d1
SELECT UNCOMPRESS(0x08000000789c7374727631303432060008ae01d1);
->ABCD0123
تابع MD5 :
یک هش 128 بیتی برای رشته ورودی اعمال میکند . خروجی آن نیز یک مقدار 32 رقمی هگزادسیمال میباشد .
SELECT MD5('PASSWORD');
-> 319f4d26e3c536b5dd871bb2c52e3178
تابع SHA1 :
این تابع مقدار HASH رشته ورودی را با الگوریتم SHA-1 محاسبه میکند ، خروجی این تابع یک رشته هگزادسیمال به طول 40 کاراکتر میباشد .
SELECT SHA1('PASSWD');
->dd6be78993bf6c58f5af3c87dc7467e318c8d5e4
تابع SHA2 :
این الگوریتم هم خانواده الگوریتم های (SHA-224, SHA-256, SHA-384, and SHA-512) میباشد . این تابع 2 ورودی را دریافت میکند ، اولی رشته ای که قرار است HASH شود و دومین آرگومان هم مقدار بیت های خروجی را تعیین میکند .
طول بیت های این الگوریتم باید به اندازه اعداد (224, 256, 384, 512) یا عدد 0 که معدل 256 است باشد ، واگرنه خروجی NULL میباشد .
SELECT SHA2('QWERTY',224);
->217b8bf9b33daffbb331ec3c98f38923155dd161d00c060090
VALIDATE_PASSWORD_STRENGTH :
این تابع رشته ورودی را به عنوان پسورد دریافت کرده و خروجی آن عددی بین 0 تا 100 است که تعیین کننده قدرت رمزعبور میباشد .
select VALIDATE_PASSWORD_STRENGTH('ZTOU');
->25
به وسیله کدهای زیر میشود سیاست های قدرت رمزعبور را تغییر داد .
SET GLOBAL validate_password.policy=low;
SET GLOBAL validate_password.policy=medium;
SET GLOBAL validate_password.policy=strong;
RANDOM_BYTES :
این تابع یک ورودی از کاربر برای تعیین کردن طول خروجی دریافت میکند و بایت هایی را به صورت تصادفی ایجاد میکند ، یکی از کاربردهای این تابع ایجاد کلید و vector برای توابع AES_ENCRYPT و AED_DESCRYPT میباشد .