دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه! دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه!
🎯 ثبت نام

آموزش کار با ماژول Crypto در Node.js

آموزش کار با ماژول Crypto در Node.js:

ماژول Crypto در چهارچوب کاری Node.js راه حلی جهت مدیریت داده های رمزگذاری شده (encrypted data) را فراهم کرده است.
شکل کلی استفاده از ماژول Crypto در برنامه های Node.js به صورت زیر است :

var crypto = require('crypto');
            

در ادامه با ارائه چند مثال عملی، نحوه استفاده از ماژول Crypto در نود جی اس را آموزش داده ایم.
مثال1: در کد مثال زیر یک رمز عبور را به نام mypassword ایجاد کرده ایم. سپس توسط متدهای ماژول Crypto آن را بر حسب انکد utf8 ؟؟؟hex رمزنگاری کرده و خروجی را نشان داده ایم. :

var crypto = require('crypto');

var mykey = crypto.createCipher('aes-128-cbc', 'mypassword');
var mystr = mykey.update('abc', 'utf8', 'hex')
mystr += mykey.final('hex');

console.log(mystr); //34feb914c099df25794bf9ccb85bea72
            

خروجی رمزنگاری شده رمز وارد شده به صورت زیر است :

34feb914c099df25794bf9ccb85bea72
            

مثال2: در کد مثال عملی زیر، رمز عبوری را که در مثال قبل رمزنگاری کرده بودیم را به وسیله متدهای createDecipher و update ماژول Crypto رمزگشایی کرده و مقدار اصلی آن را در خروجی نمایش داده ایم :

var crypto = require('crypto');

var mykey = crypto.createDecipher('aes-128-cbc', 'mypassword');
var mystr = mykey.update('34feb914c099df25794bf9ccb85bea72', 'hex', 'utf8')
mystr += mykey.final('utf8');

console.log(mystr); //abc
            

خروجی مقدار ‘abc’ خواهد بود :

abc
            

آموزش کار با متدها و خواص ماژول Crypto در Node.js :

در جدول زیر، به توضیح و بررسی خواص و متدهای ماژول Crypto در Node.js پرداخته ایم :


متد
کاربرد
constants
این متد یک شی (object) برمی گرداند که حاوی مقادیر ثابت (Constants) ماژول Crypto می باشد.
fips
این متد چک می کند آیا ابزار FIPS Crypto در حال استفاده است یا خیر.
createCipher()
این متد یک شی رمزنگاری شده جاوا یا Cipher Object را با استفاده از الگوریتم و رمز تعیین شده، تولید می کند.
createCipheriv()
این متد یک شی رمزنگاری شده (Cipher Object) را با استفاده از الگوریتم، رمز و وکتور مقداردهی اولیه، تولید می کند.
createDecipher()
این متد یک شی Decipher Object را به وسیله الگوریتم و رمز مورد نظر، ایجاد می کند.
createDecipheriv()
این متد نیز یک شی Decipher object را به وسیله الگوریتم، رمز عبور و وکتور مقداردهی اولیه، ایجاد می کند.
createDiffieHellman()
این متد یک کلید (key) از نوع DiffieHellman برای شی تبادل اطلاعات (exchange object) ایجاد می کند.
createECDH()
این متد یک کلید از نوع Elliptic Curre Diffie Hellmann برای شی تعویض اطلاعات، تولید می کند.
createHash()
این متد با استفاده از الگوریتم تعیین شده برای آن، یک شی Hash Object تولید می کند.
createHmac()
این متد یک شی Hmac Object را به وسیله الگوریتم و کلید (key) مورد نظر، می سازد.
createSign()
این متد یک شی Sign Object را به وسیله الگوریتم و کلید تعیین شده، تولید می کند.
createVerify()
این متد یک شی اعتبارسنجی Verify Object را بر اساس الگوریتم تعیین شده، ایجاد می کند.
getCiphers
این متد یک آرایه از الگوریتم های Cipher ی که پشتیبانی می شوند را بر می گرداند.
getCurves()
این متد یک آرایه از elliptic curves هایی که پشتیبانی می شوند را بر می گرداند.
getDiffieHellman()
این متد یک کلید از پیش تعریف شده شی Diffie Hellmann جهت تبادل اطلاعات را بر می گرداند.
getHashes()
این متد یک آرایه از الگوریتم های Hash ای که توسط برنامه پشتیبانی می شوند را بر می گرداند.
pbkdf2()
این متد یک رمز عبور (Password) را بر حسب مدل پیاده سازی (Key Derivation Function2) ایجاد می کند.
pbkdf2Sync()
این متد یک رمز عبور نامتقارن (Syncrounus) را بر حسب مدل پیاده سازی (Key Derivation Function2) تولید می کند.
privateDecrypt()
این متد اطلاعات رمزنگاری شده را با استفاده از یک کلید خصوصی (Private Key) رمزگشایی می کند.
timingSafeEqual()
این متد، مقدار دو Buffer هدف را با هم مقایسه کرده و در صورت برابری مقدار true و در غیر این صورت مقدار false را بر می گرداند.
privateEncrypt()
این متد، اطلاعات مورد نظر را با استفاده از یک کلید خصوصی (private key) رمزنگاری می کند.
publicDecrypt()
این متد، اطلاعات رمز شده را با استفاده از یک کلید عمومی (public key) رمزگشایی می کند.
publicEncrypt()
این متد، اطلاعات مورد نظر را با استفاده از یک کلید عمومی (public key) رمزنگاری می کند.
randomBytes()
این متد اطلاعات رندم (Random) تولید می کند.
setEngine()
این متد موتور (Engine) مورد نظر را برای بعضی یا تمامی توابع Open SSL تنظیم می کند.
1398/06/01 3067 0
نظرات شما

نظرات خود را ثبت کنید...