0. ন্যানয়েড তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করুন [নতুন!]
জাভাস্ক্রিপ্টের জন্য একটি ক্ষুদ্র, সুরক্ষিত, ইউআরএল-বান্ধব, অনন্য স্ট্রিং আইডি জেনারেটর
https://github.com/ai/nanoid
import { nanoid } from "nanoid";
const id = nanoid(48);
1. বেস URL৪ ইউআরএল এবং ফাইল নাম নিরাপদ বর্ণমালা দিয়ে এনকোডিং
আরসিএফ 4648 এর 7 পৃষ্ঠায় URL সুরক্ষার সাথে বেস 64 এ কীভাবে এনকোড করা যায় তা বর্ণনা করা হয়। কাজটি করতে আপনি বেস 64url এর মতো একটি বিদ্যমান লাইব্রেরি ব্যবহার করতে পারেন ।
ফাংশনটি হ'ল:
var crypto = require('crypto');
var base64url = require('base64url');
/** Sync */
function randomStringAsBase64Url(size) {
return base64url(crypto.randomBytes(size));
}
ব্যবহারের উদাহরণ:
randomStringAsBase64Url(20);
// Returns 'AXSGpLVjne_f7w5Xg-fWdoBwbfs' which is 27 characters length.
নোট করুন যে ফিরে আসা স্ট্রিংয়ের দৈর্ঘ্য আকারের যুক্তির সাথে মিলবে না (আকার! = চূড়ান্ত দৈর্ঘ্য)।
২. ক্রিপ্টো র্যান্ডম মানগুলি সীমিত অক্ষরের সেট থেকে
সাবধান হন যে এই সমাধানের সাহায্যে উত্পন্ন এলোমেলো স্ট্রিংটি সমানভাবে বিতরণ করা হয়নি।
আপনি এর মতো সীমিত অক্ষরের সেট থেকে একটি শক্তিশালী এলোমেলো স্ট্রিং তৈরি করতে পারেন:
var crypto = require('crypto');
/** Sync */
function randomString(length, chars) {
if (!chars) {
throw new Error('Argument \'chars\' is undefined');
}
var charsLength = chars.length;
if (charsLength > 256) {
throw new Error('Argument \'chars\' should not have more than 256 characters'
+ ', otherwise unpredictability will be broken');
}
var randomBytes = crypto.randomBytes(length);
var result = new Array(length);
var cursor = 0;
for (var i = 0; i < length; i++) {
cursor += randomBytes[i];
result[i] = chars[cursor % charsLength];
}
return result.join('');
}
/** Sync */
function randomAsciiString(length) {
return randomString(length,
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789');
}
ব্যবহারের উদাহরণ:
randomAsciiString(20);
// Returns 'rmRptK5niTSey7NlDk5y' which is 20 characters length.
randomString(20, 'ABCDEFG');
// Returns 'CCBAAGDGBBEGBDBECDCE' which is 20 characters length.