crypto.generateKeyPairSync() একটি সিঙ্ক ফ্লোতে নির্দিষ্ট ধরনের একটি নতুন অসিমেট্রিক কী জোড়া তৈরি করতে ব্যবহার করা যেতে পারে। কী জোড়া তৈরি করার জন্য সমর্থিত প্রকারগুলি হল:RSA, DSA, EC, Ed25519, Ed448, X25519, X448 এবং DH৷ ফাংশনটি এমন আচরণ করে যেন keyObject.export এর ফলাফলে কল করা হয়েছে যখন একটি publicKeyEncoding বা privateKeyEncoding নির্দিষ্ট করা হয়, অন্যথায় keyObject-এর সংশ্লিষ্ট অংশ ফেরত দেওয়া হয়। সর্বজনীন কী-এর জন্য প্রস্তাবিত প্রকার হল 'spki' এবং ব্যক্তিগত কী-এর জন্য এটি 'pkcs8'৷
সিনট্যাক্স
crypto.generateKeyPairSync(টাইপ, বিকল্প)
পরামিতি
উপরের পরামিতিগুলি নীচে −
হিসাবে বর্ণনা করা হয়েছে-
টাইপ - এটি স্ট্রিং টাইপ ধারণ করে যার জন্য কী তৈরি করা প্রয়োজন। সমর্থিত প্রকারগুলি হল - RSA, DSA, EC, Ed25519, Ed448, X25519, X448 এবং DH৷
-
বিকল্পগুলি ৷ - এটি নিম্নলিখিত পরামিতিগুলি ধরে রাখতে পারে -
-
মডুলাস দৈর্ঘ্য - এটি টাইপের (RSA, DSA) জন্য বিটগুলিতে কী আকার ধারণ করে।
-
পাবলিক এক্সপোনেন্ট - এটি RSA অ্যালগরিদমের জন্য সর্বজনীন সূচক মান রাখে।
ডিফল্ট মান হল – 0x10001
-
ভাজক দৈর্ঘ্য - এটি বিটগুলিতে q এর আকার ধারণ করে।
-
নামযুক্ত কার্ভ – এটি ব্যবহার করার জন্য বক্ররেখার নাম ধরে রাখবে।
-
প্রধান - এটি DH
-এর মত প্রকারের জন্য প্রাইম প্যারামিটার ধরে রাখবে -
প্রধান দৈর্ঘ্য – এটি প্রাইম লেন্থকে বিটে ধরে রাখবে।
-
জেনারেটর – এই প্যারামিটারটি কাস্টম জেনারেটর মান ধারণ করে, ডিফল্ট:2।
-
গোষ্ঠীর নাম – এটি ডিএইচ অ্যালগরিদমের ডিফে-হেলম্যান গ্রুপের নাম।
-
publicKeyEncoding – এটি সর্বজনীন কী এনকোডিংয়ের জন্য স্ট্রিং মান ধরে রাখবে।
-
privateKeyEncoding - এটি ব্যক্তিগত কী এনকোডিংয়ের জন্য স্ট্রিং মান ধরে রাখবে৷
-
উদাহরণ
নামের সাথে একটি ফাইল তৈরি করুন -KeyPairSync.js তৈরি করুন এবং নীচের কোড স্নিপেটটি অনুলিপি করুন। ফাইল তৈরি করার পরে, নীচের উদাহরণে দেখানো এই কোডটি চালানোর জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করুন −
নোড generateKeyPairSync.js
generateKeyPairSync.js
// Node.js প্রোগ্রাম crypto.generateKeyPair() পদ্ধতির প্রবাহ প্রদর্শনের জন্য// ক্রিপ্টো মডিউলকনস্ট { generateKeyPairSync } থেকে generateKeyPairSync আমদানি করা =প্রয়োজন('crypto');//পাবলিক Kye এবং ব্যক্তিগত সিঙ্কের মান পাওয়া processconst { publicKey, privateKey } =generateKeyPairSync('ec', { nameCurve:'secp256k1', // ইমপ্লিমেন্টিং অপশন publicKeyEncoding:{ type:'spki', ফরম্যাট:'der' }, privateKeyEncoding:{ type:'pkmatcs8', for :'der' }});// একটি সিঙ্ক processconsole.log("সর্বজনীন কী হল:", publicKey);console.log();console.log("ব্যক্তিগত কী হল:" , ব্যক্তিগত কী);
আউটপুট
C:\home\node>> node generateKeyPairSync.jsপাবলিক কী হল:ব্যক্তিগত কী হল: উদাহরণ
আসুন আরও একটি উদাহরণ দেখি।
// Node.js প্রোগ্রাম crypto.generateKeyPair() পদ্ধতির প্রবাহ প্রদর্শনের জন্য// ক্রিপ্টো মডিউলকনস্ট { generateKeyPairSync } থেকে generateKeyPairSync আমদানি করা =প্রয়োজন('crypto');//পাবলিক Kye এবং ব্যক্তিগত সিঙ্কের মান পাওয়া processconst { publicKey, privateKey } =generateKeyPairSync('dsa', { modulusLength:570, // Implementing options publicKeyEncoding:{ type:'spki', format:'der' }, privateKeyEncoding:{ type:'pkcs:', for der' }});// encodingconsole.log("পাবলিক কী হল:", publicKey)console.log("base64-এ সর্বজনীন কী মান হল:", publicKey.toString('base64')) এর পরে অপ্রতিসম কী জোড়া মুদ্রণ করা;console.log("-------------------------------------------- ----------")console.log("ব্যক্তিগত কী হল:", privateKey) console.log("বেস64-এ ব্যক্তিগত কী হল:", privateKey.toString('base64'));প্রে>আউটপুট
C:\home\node>> নোড generateKeyPairSync.jsপাবলিক কী হল:<বাফার 30 82 01 0f 30 81 bf 06 07 2a 86 48 ce 38 04 01 30 81b3 a 9c 03e 02e 02e ed 11 96 13 ফে A6 F6 35 27 0c 60 1c f951 Ee DD 2C 75 12 ...> করুন Base64- জনসাধারণের কী মান হল:MIIBDzCBvwYHKoZIzjgEATCBswJJAJpc3aPODo4 + + Du0RlhP + + HKb2NScMYPlR7t0sdRJhr0JWPvtRyFWmn5ZAldFdDrUye5eQ + + HmwgJboEWtCUm3b24CoLSQ74P1YkwIdAJs5rCSAIefaTT469xx + + / 8C3jS4WjYpHci0rft8CR3Fx1wxDFdCHJBqPlR7iGxd + + 7nZlChABL7UqCZMaiwCJ2ijVXc5dgr3Frudu7CbaAnRJStbqDjm5ppj4aaZV / 9FmKvWVao9wA0sAAkhQtXOIWQrHde + + fXoZLgPhbTBctPB1tcFztNmq2s3IOKGfo2kFUL6eJu811SSZ1scQFLVKc5DrZIdW7t3UqzEH + + xCVxNkWtGQk =- ------------------------------------------------------------------ --প্রাইভেট কী হল:<বাফার 30 81 e5 02 01 00 30 81 bf 06 07 2a 86 48 ce 38 04 0130 81 b3 02 49 00 9a 5c dd a3 ce 0e 61e 31e 61e 31e 31e 318 0c60 f9 51 ee dd 2c ...>বেস64-এর ব্যক্তিগত কী হল:MIHlAgEAMIG/BgcqhkjOOAQBMIGzAkkAmlzdo84Ojj4O7RGWE/4cpvY1Jwxg+VHu3Sx1EmGvQlY1Jwxg+VHu3Sx1EmGvQlYaFY+D0VCVLK+1VCVLK+1V bgKgtJDvg / ViTAh0AmzmsJIAh59pNPjr3HH7 / wLeNLhaNikdyLSt + + 3wJHcXHXDEMV0IckGo + + VHuIbF37udmUKEAEvtSoJkxqLAInaKNVdzl2CvcWu527sJtoCdElK1uoOObmmmPhpplX / 0WYq9ZVqj3AEHgIcJ2ON17GGE4FrtkJak337GB + + bAEkb + + YjulN2rug ==